2016-10-04 1 views
1

Je suis novice dans le domaine des scripts et j'aimerais comprendre comment imprimer les variables en fonction de la logique booléenne.Exécutez 2 commandes rsync et imprimez la sortie dans un fichier journal

#!/bin/bash 

# set variables 
WEBAPPS_YES="Successfully synced webapps folder" 
WEBAPPS_NO="Could not sync webapps folder" 
RSYNC_YES="Successfully synced rsync log file" 
RSYNC_NO="Could not sync rsync log file" 

# Command to rsync 'webapps' folder and write to a log file 
rsync -azvh ~/webapps -e ssh [email protected]:/home/directories >> /path/to/rsync.log 2>&1 

# Command to rsync 'rsync.log' to a log file on backup server 'Larry' 
rsync -azvh --delete ~/rsync.log -e ssh [email protected]:/path/to/logs 

if [ $? -eq 0 ] 
then 
    echo 
    exit 0 
else 
    echo >&2 
    exit 1 
fi 

Je voudrais toute if, then, else partie à imprimer dans le echo si les deux parties ont réussi ou non. Je sais que j'ai besoin de quelques énoncés de logique, mais je ne peux pas le comprendre.

Répondre

1

Vous pouvez vérifier le résultat après l'exécution de chaque commande rsync et afficher le résultat par la suite. Je pense que cela fonctionnerait:

# Command to rsync 'webapps' folder and write to a log file 
rsync -azvh ~/webapps -e ssh [email protected]:/home/directories >> /path/to/rsync.log 2>&1 
RESULT1="$?" 

# Command to rsync 'rsync.log' to a log file on backup server 'Larry' 
rsync -azvh --delete ~/rsync.log -e ssh [email protected]:/path/to/logs 
RESULT2="$?" 

if [ "$RESULT1" != "0" ]; then 
    echo "$WEBAPPS_NO" 
else 
    echo "$WEBAPPS_YES" 
fi 

if [ "$RESULT2" != "0" ]; then 
    echo "$RSYNC_NO" 
else 
    echo "$RSYNC_YES" 
fi 
+0

C'est une bonne idée! Merci! Serait-il possible d'imprimer celui qui a échoué en fonction des variables ci-dessus? Donc, je pourrais avoir WEBAPPS_YES "mais" RSYNC_NO. Ce genre de chose? – eekfonky

+0

Bien sûr, RESULT1 et RESULT2 vont fondamentalement tenir "0" si la commande est réussie, donc vous pouvez l'inspecter et afficher le résultat en conséquence. Voir la mise à jour –

+0

Je vais essayer et vous le faire savoir. Merci pour l'aide – eekfonky