Vérifiez si la commande rsync a bien fonctionné
Suivantes bash script est en train de faire un rsync d'un dossier à chaque heure:
#!/bin/bash
rsync -r -z -c /home/pi/queue root@server.mine.com:/home/foobar
rm -rf rm /home/pi/queue/*
echo "Done"
Mais j'ai découvert que mon Pi déconnecté de l'internet, de sorte que le nom du fichier a échoué. Ainsi, il a fait la commande suivante, la suppression du dossier.
Comment faire pour déterminer si un rsync-commande a réussi, s'il l'est, il peut supprimer le dossier.
source d'informationauteur user1670816
Vous devez vous connecter pour publier un commentaire.
Généralement, toute commande Unix doit retourner 0 si elle s'est déroulée avec succès, et non 0 dans les autres cas.
Regarder man rsync pour les codes de sortie qui peuvent être pertinents à votre situation, mais je préfère le faire de cette façon :
Qui permettra de rm et de l'écho fait que si tout s'est bien passé.
Autre façon de le faire serait par l'utilisation de $? variable qui est toujours le code de retour de la commande précédente :
voir homme rsyncsection SORTIE des VALEURS
vous devez vérifier la valeur de sortie de rsync
Ensemble de codes de résultat ici:
http://linux.die.net/man/1/rsync
Vieille question, mais je suis surpris que personne n'a donné la réponse est simple:
Utilisation de la --remove-source-fichiers rsync option.
Je crois que c'est exactement ce dont vous avez besoin.
À partir de la page de man:
Uniquement les fichiers qui rsync a pleinement réussi à transférer sont supprimés.
Quand pas familier avec rsync, il est facile d'être confus au sujet de l' --supprimer des options et l'option --remove-source-option fichiers. L' --supprimer les options supprimer des fichiers sur la destination. Plus d'infos ici:
https://superuser.com/questions/156664/what-are-the-differences-between-the-rsync-delete-options