Supposons que j'exécute un script avec at
Linux (exemple ci-dessous) dont je sais que cela va prendre plusieurs heures, voire plusieurs jours. Je suis habitué à at
envoyer un e-mail avec la sortie de la commande une fois qu'elle est terminée, mais que faire si je voulais jeter un œil à la sortie actuelle avant qu'elle ne se termine? Supposons également que j'ai déjà exécuté le script et oublié de rediriger la sortie à l'aide de tail
, tee
ou d'autres méthodes similaires, et que je ne souhaite pas arrêter le script. Y a-t-il un moyen de le faire?
drew@anubis:~$ at now
warning: commands will be executed using /bin/sh
at> ./myscript.sh
at> <EOT>
job 3 at Sat Jan 7 09:31:00 2017
tail -f
ce fichier?tail
et que je ne veux pas l'arrêter.Réponses:
Si le travail a commencé et que vous avez un moyen d'obtenir le PID de ce travail, vous pouvez voir où
at
enregistre la sortie:Comme vous pouvez le voir, la sortie est enregistrée dans un fichier temporaire, que vous pouvez maintenant vérifier:
Vous avez besoin
sudo
parce que le répertoire contenant n'est pas accessible au monde (au moins sur Ubuntu 14.04):la source
at
travail. Vous n'avez même pas besoin du PID. Vous pouvez simplement exécutersudo ls /var/spool/cron/atspool
et il devrait, en théorie, être le seul fichier là-bas.Une autre façon de déterminer à partir de quel fichier spoule appartient votre travail consiste à obtenir le numéro de travail
atq
.Convertissez le numéro de tâche en hexadécimal. par exemple 38 (déc) = 26 (hex).
Votre fichier sera nommé lettre de file d'attente (99% du temps, c'est
a
) suivi d'un identifiant de travail hexadécimal à 5 chiffres (j'ai appris cela en parcourant le code source de laat
commande).Ensuite, vous pouvez voir la sortie standard
la source