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