De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: André Proto
Data de Publicação: 27 de Janeiro de 2009
Há alguns dias senti a necessidade de realizar o backup de meu pendrive de forma automática sempre no momento em que eu o conectava/desconectava de meu computador. Por isso nesta dica eu coloquei um pequeno script SHELL que realiza o backup no momento em que o Pendrive (ou outro dispositivo de armazenamento USB) é conectado ou desconectado.
O script abaixo foi feito para funcionar no GNOME, porém pode ser adaptado para outros ambientes gráficos e até para o terminal de texto. O script também utiliza os utilitários rsync e sudo; por isso verifique se estes estão instalados em seu sistema antes de seguir esta dica.
Explicando sucintamente como funciona, quando você conecta o seu pendrive na porta USB, o GNOME executa o comando "gnome-mount" com alguns parâmetros de entrada para realizar a montagem de forma automárica. A idéia então é substituir o aplicativo gnome-mount pelo nosso script e assim executar os comandos necessários para a sincronização dos dados.
Resumindo, o que este script faz:
Vamos aos passos:
#!/bin/bash # Autor: André Proto # Distribuicao livre # # Defina abaixo as seguintes variaveis: # - CMD: comando original do sistema para montagem de dispositivos # - UUID: UUID da particao do Pendrive # - USER: usuario que tera permissao para realizar backup # - DEST: diretorio de destino do backup # - LOGFILE: arquivo de log CMD="/usr/bin/gnome-mount-orig" UUID="UUID-UUID" USER="user" DEST="/home/${USER}/pendrive/" LOGDIR="/var/log/backup_pendrive.log" DEVICE="$@" DEVICE=${DEVICE##* } U=`echo "$@" | grep 'u '` if [ -z "$U" ]; then $CMD $@ fi MYUSER=`whoami` MNTDIR=`mount | grep $DEVICE | awk '{ print $3 }' | head -1` if [ "$MYUSER" = "$USER" ]; then UUID_DEV=`sudo /sbin/vol_id --uuid $DEVICE` if [ "$UUID_DEV" = "$UUID" ]; then rsync -av --delete "${MNTDIR}/" "${DEST}" >> ${LOGFILE} 2>&1 fi fi if [ ! -z "$U" ]; then $CMD $@ fi
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários