Hum, crio tanto script que fica dificil organizar. Vou colocar alguns que criei para usuários do forum.
Backup automatico de uma pasta (/home por exemplo) no pendrive assim que o memso é conectado.#!/bin/bash
CMD="/usr/bin/gnome-mount-old"
UUID="UUID-UUID"
USER="usuario"
LOGDIR="/var/log/pendrive.log"
ORIG="/home/usuario/Documentos"
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 -Cravzpu --delete "${ORIG}" "${MNTDIR}/backup" 2>&1 >> ${LOGDIR} | zenity --progress --pulsate --auto-close --title="Backup" --text="Transferência de dados em Andamento, AGUARDE."
fi
fi
if [ ! -z "$U" ]; then
$CMD $@
fi
Para funcionar é preciso fazer algumas coisas antes, esta tudo explicado passo a passo no link abaixo.
http://ubuntuforum-br.org/index.php/topic,50975.msg298291.html#msg298291Script para ficar realizar um backup dos dados automaticamente de hora em hora.#!/bin/bash
loop=1
until [ $loop = "0" ]; do
rsync -Cravzpuq /origem/* /destino/
sleep 3600
done
Para deixar o script rodando, basta dar o comando
nohup script &, Dessa forma, ao fechar o terminal, ele continua rodando.
Mais explicações em
http://ubuntuforum-br.org/index.php/topic,47911.msg280984.html#msg280984Mais rsync:
O cara tinha dentro de uma pasta chamada "originais" centenas de subpastas e dentro de cada subpastas existiam mais subpastas e varios arquivos. Com o comando find + cp, ele retirou de dentro de cada subpasta um arquivo de uma
determinada extensão e todos esses arquivos foram parar na raiz de um unico diretório chamado "editados". Após editar essas centenas de arquivos que foram copiados para a pasta "editados", ele precisava voltar cada arquivo editado para o local original, substituindo o arquivo mais antigo. Mas como saber de onde veio cada arquivo que estava na pasta editados? Supondo que esses arquivos fossem *.txt, abaixo segue a resposta.
#!/bin/bash
find /originais/ -name *.txt -type f -exec rsync -Cravzpu /editados/*.txt {} \;
Obvio que se forem de outra extensão, bastaria alterar a extensão no comando.
Esse foi um caso raro, mas para quem quer melhorar o conhecimento de manipulação de arquivo em modo texto, é um prato cheio.
Topico com detalhes do funcionamento do comando e da duvida do companheiro.
http://ubuntuforum-pt.org/index.php/topic,51629.msg297802.html#msg297802