quarta-feira, fevereiro 07, 2007

Procedimento de Migração de contas entre o oldServer e o newServer.
Serão criado dois scripts em Perl para realizar a tarefa. oldServer é uma máquina que utilizar o Sendmail com mbox. newServer é uma máquina que vai usar Postfix e esquema mbox.

Desligar o oldServer.

Primeiro Script (oldServer) mailtombox.pl :
Anexar ao final do arquivo mbox em cada pasta do usuário em oldServer o conteúdo de /var/mail/<usuario>.
Para isso, o script usará um arquivo de texto chamado users com o login de todos os usuários. É interessante editar este arquivo pelo menos uma vez para retirar os usuários do sistema. A seguir, o dito cujo:

#!/usr/bin/perl -w
open( USERS, "users") || die "impossible to open users or users doesn't exist.....";

# Hash with users' homes dir.
my(%homes);
while ( <USERS> )
{
chomp;
$temp = (getpwnam($_))[7];
$homes{$_} = $temp ;
}

foreach $user (keys(%homes))
{
if ( -e "/var/mail/$user" )
{
`cat /var/mail/$user >> $homes{$user}/mbox`;
}
else
{
}
}

Segundo Script(oldServer e newServer):
Pegar todos os usuários do oldServer.
Utilizando o arquivo passwd.oldsServer e shadow.oldServer no diretório do script.
Criar no newServer todos usuários do oldServer que ainda não existam.
Utilizando o comando adduser.
Conservar as senhas do servidor oldServer.
Atualizando o /etc/shadow do newServer com as entradas de shadow.oldServer.
Copiar o contéudo de todos os diretórios da pasta /home do oldServer para a pasta /home do newServer.
Utilizando o scp com o recurso de chave compartilhada para evitar a necessidade de senha.
Preservar as permissões nos diretórios.

Para permitr o uso do scp sem necessidade de senha, fiz um pequeno ajuste temporário, para permitir login sem senha no ssh. Suponha que existam duas máquinas A e B e um usuário x. A partir de A , x deseja poder logar em B sem senha. Os passos seriam:

x@A:~$ ssh-keygen -t rsa
Não informe passphrase.
x@A:~$ ssh x@B mkdir -p .ssh
Aqui informe a senha pela última vez.
x@A:~$ cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'

É isso aí. Agora ssh x@B deve permitir o login direto, assim como o scp deve permitir a cópia de arquivos sem senhas.

Esta artimanha é bem legal para escrever scripts que disparem comandos em várias máquinas.





Post a Comment

Nenhum comentário: