Comandos em um script de shell são executados sequencialmente. Se o seu primeiro comando for rsync
, o próximo comando não será executado até que rsync
seja concluído.
O que você quer ter certeza é que rsync
termine com sucesso antes de continuar com o próximo comando.
Esta não é a solução mais elegante, mas a mais fácil de implementar.
rsync -e ssh -az [email protected]:/home /location/of/local/folder &&\
tar zcf /var/backups/home-'date +%Y%m%d'.tar.gz /location/of/local/folder
Lembre-se de que isso só funcionará se o status de saída de rsync
for 0
. Qualquer outro status de saída e comando 2 não serão executados.
AND and OR lists are sequences of one of more pipelines separated by the && and || control operators, respectively. AND and OR lists are executed with left associativity. An AND list has the form command1 && command2 command2 is executed if, and only if, command1 returns an exit status of zero.
Você pode adicionar mais inteligência ao seu script se tiver realizado ações diferentes com base nos rsync
EXIT VALUES.
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin
rsync -e ssh -az [email protected]:/home /location/of/local/folder
if [ $? != "0" ]
then
echo "There was a problem"
else
tar zcf /var/backups/home-'date +%Y%m%d'.tar.gz /location/of/local/folder
fi