Linux: Usando um pendrive para transportar suas configurações

Hoje em dia, é cada vez mais comum utilizarmos mais de um micro. Pode ser que você tenha um PC em casa e outro no trabalho, que tenha um desktop e um notebook ou, que simplesmente tenha dois ou mais micros, por um motivo qualquer.

Neste cenário, um dos desafios é transportar arquivos e configurações de um micro para o outro de forma prática. Uma das soluções é simplesmente ficar enviando e-mails para você mesmo com os arquivos em que está trabalhando; afinal, os e-mails podem ser acessados de qualquer lugar, sobretudo se você usa o Gmail ou outro webmail. Outra solução é comprar um pendrive ou HD externo e simplesmente ir copiando os arquivos importante manualmente.

O problema com ambas as idéias é que elas exigem intervenção manual. Você precisa selecionar os arquivos e copiá-los manualmente de um PC para o outro. Além de ser tedioso, o processo faz com que você acabe deixando muita coisa para trás.

No Linux, todas as duas configurações, e-mails e (geralmente), também seus arquivos de trabalho ficam salvos na sua pasta home, de forma que ao transportá-la de um micro a outro, você acaba levando junto todas as configurações. Uma dica simples, que muita gente usa, é gerar um arquivo compactado com o home, salvá-lo no pendrive e depois restaurá-lo manualmente na outra máquina. Embora funcione, este é um procedimento manual e (se você tiver um grande volume de arquivos), também demorado.

É o tipo de coisa que você poderia fazer esporadicamente, ao reinstalar o sistema, por exemplo, mas não é algo que você gostaria de fazer duas vezes por dia.

Que tal uma solução que lhe permitisse salvar automaticamente todas as suas configurações e arquivos em um pendrive e restaurá-las em outro micro, com apenas um clique? Neste caso, você só precisaria clicar no ícone para salvar os arquivos ao terminar de trabalhar no micro A, levar o pendrive com você e depois clicar no ícone para restaurar ao plugá-lo no micro B, e vice-versa. Mais prático do que isso impossível. 🙂

Para colocar o nosso projeto de hoje em prática, você vai precisar apenas do rsync, um utilitário de linha de comando que permite fazer cópias incrementais, onde são copiados apenas os arquivos que foram alterados desde a última atualização. Isto torna as cópias brutalmente mais rápidas, permitindo que sejam copiados apenas os 10 MB e arquivos que você modificou da última vez, ao invés dos 2 GB do seu home completo, por exemplo.

Verifique se o pacote “rsync” está instalado nos dois micros. No caso do Ubuntu, Kubuntu, Kurumin e outras distribuições derivadas do Debian, você pode instalá-lo via apt-get (como root):

# apt-get install rsync

No Ubuntu, você pode executar o comando como root adicionando o comando “sudo” antes do comando. Em outras distribuições, use o comando “su -” para logar-se como root.

Em segundo lugar, você precisa, naturalmente, de um pendrive. No meu caso, estou usando esta belezinha de 4 GB, mas você pode utilizar pendrives de qualquer capacidade, de acordo com o volume de arquivos salvos no seu home. Pastas de e-mails do Thunderbird e o cache do Firefox, por exemplo, consomem bastante espaço.
pen_html_5a7dc1a7
Com o pendrive em mãos e o rsync instalado em ambos os micros, vamos ao que interessa.

Em primeiro lugar, você precisa reformatar o pendrive em EXT3. Originalmente os pendrives são formatados em FAT32 (ou FAT16), que não oferece suporte às permissões de acesso e outros atributos usados no Linux.

Para formatar seu pendrive em EXT3, utilize o comando abaixo, substituindo o “/dev/sdb1” pelo dispositivo e partição corretos. Preste atenção para não formatar uma das partições do HD por engano! Na dúvida, use o comando “fdisk -l” (como root), para listar os dispositivos e partições disponíveis no seu micro.

# mkfs.ext3 /dev/sdb1

Monte o pendrive e, só por desencargo, certifique-se de que o seu login de usuário terá acesso completo à pasta, modificando as permissões de acesso. Se você usa o usuário “joao” e o pendrive está montado na pasta “/mnt/sdb1”, o comando fica:

# chown -R joao.joao /mnt/sdb1

Com o pendrive formatado em EXT3, vamos à parte divertida, que é criar os scripts que farão o trabalho pesado. A partir daqui, tudo é feito usando seu login normal de usuário, nada como root.

É importante também que você utilize contas com o mesmo nome nas duas máquinas, caso contrário teremos problemas diversos relacionados com permissões e variáveis em arquivos de configuração. Também é importante fazer um backup dos arquivos, apenas para o caso de você acabar digitando algum dos comandos errado, fazendo com que ele apague tudo ao invés de copiar para o pendrive. ;lembre-se de que a lei de murphy é a única lei da natureza que nunca falha. 🙂

Comece montando o pendrive e criando dois arquivos de texto, chamados “atualizar.sh” e “restaurar.sh“. Como os nomes sugerem, o primeiro servirá para salvar seu home e arquivos dentro do pendrive e o segundo para restaurá-lo na outra máquina.

Marque a permissão de execução para ambos nas propriedades do arquivo, ou, se preferir, use o chmod, via texto:

$ chmod +x atualizar.sh
$ chmod +x restaurar.sh

Dentro do arquivo “atualizar.sh”, vai o seguinte script:

#!/bin/sh

pasta=`mount | grep sd | grep ext3 | tail -n 1 | cut -f 3 -d ” “`
cd $pasta

dialog –yesno “Tem certeza que deseja atualizar os arquivos no pendrive?” 0 0

resp=`echo $?`
if [ “$resp” = “1” ]; then
exit 0
else

mkdir joao
rsync -av –delete /home/joao/ ./joao
sync

fi

Este script é um pouco mais complicado do que precisaria realmente ser, pois incluí algumas precauções. As duas primeiras descobrem e acessam a pasta onde o pendrive está montado (só por precaução) e as quatro seguintes abrem uma janela de confirmação.

O que interessa mesmo são as últimas três linhas, que criam a pasta dentro do pendrive, copiam o home para ela, usando o rsync e sincronizam o buffer do pendrive.

Lembre-se também de substituir todos os “joao” dentro dos scripts pelo seu login de usuário.

Em seguida temos o script “restaurar.sh”, que faz o processo inverso, copiando de volta os arquivos salvos no pendrive. Ele fica com o seguinte conteúdo:

#!/bin/sh

pasta=`mount | grep sd | grep ext3 | tail -n 1 | cut -f 3 -d ” “`
cd $pasta

dialog –yesno “Tem certeza que deseja restaurar o home?” 0 0

resp=`echo $?`
if [ “$resp” = “1” ]; then
exit 0
else

rsync -av –delete ./joao/ /home/joao
sync

fi

Com isso os dois scripts estão prontos. Você pode testar executando-os via terminal, usando os comandos “./atualizar.sh” e “./restaurar.sh”.

Depois de certificar-se de que tudo está correto, falta só o toque final, que é criar dois ícones de atalho dentro do pendrive, que permitirão executar os scripts com um único clique.

Para criar os atalhos no KDE, clique com o botão direito e selecione a opção “Criar novo > Link para Aplicativo”:
pen_html_m1e7a6f13
Na janela seguinte, escolha um ícone e dê um nome para o atalho:
pen_html_66a712a1Na aba “Aplicativo > Comando”, coloque o comando que ele vai executar. Normalmente você colocaria apenas o comando para rodar o programa. No nosso caso é um pouco mais complicado, pois queremos que ele execute um script dentro do próprio pendrive, e não um executável dentro das pastas “/usr/bin” ou “/usr/local/bin”. Precisamos então usar os mesmos comandos que coloquei no início dos scripts, seguido pelo comando “./atualizar.sh”, separados por ponto e vírgula. A linha ficaria:

pasta=`mount | grep sd | grep ext3 | tail -n 1 | cut -f 3 -d ” “`; cd $pasta; ./atualizar.sh

3
Concluindo, clique no botão “Opções Avançadas” e marque a opção “Executa no terminal”:
pen_html_1c8951a3
Com isto o atalho está pronto :). Faça o mesmo com o “restaurar.sh” e terminamos.

A partir de agora, você só precisa montar o pendrive e usar os dois atalhos para atualizar e restaurar os arquivos. A primeira cópia vai demorar, pois o rsync precisará copiar todos os arquivos, mas as seguintes serão bem rápidas.

Preste atenção no volume de arquivos armazenados no home, já que o total não pode ultrapassar a capacidade do pendrive. No Konqueror você pode ver as propriedades da pasta clicando com o botão direito sobre ela.

Mais uma dica é que, depois de restaurar os arquivos, você precisará sempre reiniciar o ambiente gráfico, pressionando “Ctrl + Alt + Backspace” para que as novas configurações sejam carregadas. Você deve fazer isso logo depois de executar o “restaurar.sh”

Para usar esta dica, o ideal é que você utilize a mesma distribuição nos dois micros, já que ao usar distribuições diferentes você notará pequenos glitches, devido a diferenças nas configurações e programas instalados, embora o grosso continue funcionando perfeitamente.

Você pode ainda personalizar os dois scripts a gosto, de forma que o backup inclua também outras pastas.

Se, além do home você quer que os scripts salvem e restaurem o conteúdo da pasta “/mnt/hdb2/trabalho”, por exemplo, o conteúdo dos scripts ficaria:

  • atualizar.sh:
#!/bin/sh

pasta=`mount | grep sd | grep ext3 | tail -n 1 | cut -f 3 -d ” “`
cd $pasta

dialog –yesno “Tem certeza que deseja atualizar os arquivos no pendrive?” 0 0

resp=`echo $?`
if [ “$resp” = “1” ]; then
exit 0
else

mkdir joao
rsync -av –delete /home/joao/ ./joao
mkdir trabalho
rsync -av –delete /mnt/hdb2/trabalho/ ./trabalho
sync

fi

  • restaurar.sh:
#!/bin/sh

pasta=`mount | grep sd | grep ext3 | tail -n 1 | cut -f 3 -d ” “`
cd $pasta

dialog –yesno “Tem certeza que deseja restaurar o home?” 0 0

resp=`echo $?`
if [ “$resp” = “1” ]; then
exit 0
else

rsync -av –delete ./joao/ /home/joao
rsync -av –delete ./trabalho/ /mnt/hdb2/trabalho
sync

fi

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Assine nossa Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre tecnologia, games, IA e internet em seu email.
Veja também
Publicações Relacionadas
Img de rastreio
Localize algo no site!