4 votes

Automator reste bloqué au niveau du shell script.

Je suis en train de construire un automator script pour faire des sauvegardes automatiques sur un lecteur réseau via rsync. Le shell script fonctionne parfaitement bien dans le terminal et se complète et tout, mais lorsque je l'exécute à partir d'automator, il se bloque juste à ces étapes et ne procède jamais, c'est-à-dire que le processus continue de fonctionner en arrière-plan et le flux de travail d'automator ne passe jamais à l'étape suivante.

Screenshot from Automator (in danish)

J'ai trouvé d'autres personnes ayant des problèmes similaires sur d'autres forums, mais aucune réponse à la question de savoir comment résoudre le problème. Devrais-je ajouter une sorte de commande de sortie au shell script ?

0 votes

Il manque le mot de passe à votre script ?

0 votes

@Buscar Non, le lecteur est déjà monté. Le script s'exécute bien et les fichiers sont sauvegardés, mais il ne "termine" jamais cette étape et passe à l'étape suivante.

8voto

user3139574 Points 141

J'ai trouvé ce lien utile pour résoudre un problème similaire que je rencontrais :

https://discussions.apple.com/thread/1867978

J'ai essayé d'ajouter exit 0 à la fin de mon shell Automator script et cela n'a pas semblé faire de différence dans un sens ou dans l'autre.

Après avoir lu le lien ci-dessus, j'ai ajouté ceci à la commande dans mon shell Automator script :

>/dev/null 2>&1 &

Cela a bien fonctionné. Mon shell Automator script se termine maintenant normalement.

Dans la question ci-dessus, je pense que la commande rsync pourrait être modifiée en :

rsync -aovE --delete /Volumes/STORAGE/Batting/Volumes/home/Backup >/dev/null 2>&1 &

Si vous voulez enregistrer la sortie de votre commande, comme je l'ai fait, dans un fichier /var/log/rsync.log, vous pouvez le modifier comme suit :

rsync -aovE --delete /Volumes/STORAGE/Batting/Volumes/home/Backup >/var/log/rsync.log >/dev/null 2>&1 &

1voto

commonpawn Points 19

L'ajout de "exit 0" à la ligne 2 a réglé le problème.

2 votes

Cela peut masquer un problème avec le rsync. Il ne passe probablement pas à l'étape suivante dans votre flux d'automatisation parce que rsync est sorti avec un code de sortie non nul. Cela indique qu'une erreur s'est produite lors de la synchronisation. L'ajout du exit 0 force une sortie sans erreur du bloc script, peu importe ce que dit le rsync. Je vous recommande de vérifier que le rsync se déroule bien.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X