Допустим, я запускаю скрипт at
на Linux (пример ниже), который, как я знаю, займет несколько часов или, может быть, даже несколько дней. Я привык at
посылать электронную почту с выводом команды после ее завершения, но что если я захочу посмотреть текущий вывод до его завершения? Давайте также предположим , я уже запустить сценарий и забыл перенаправить вывод , используя tail
, tee
или другие подобные методы , и не хотят , чтобы остановить скрипт. Есть ли в любом случае, чтобы сделать это?
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
этот файл?tail
и не хочу его останавливать.Ответы:
Если задание запущено, и у вас есть какой-то способ получить PID этого задания, вы можете увидеть, где
at
сохраняется вывод:Как видите, вывод сохраняется во временном файле, который вы теперь можете проверить:
Вы нуждаетесь,
sudo
потому что содержащий каталог не является общедоступным (по крайней мере, в Ubuntu 14.04):источник
at
работу. Вам даже не нужен PID. Вы можете просто запустить,sudo ls /var/spool/cron/atspool
и теоретически это должен быть единственный файл.Другой способ определить, какой файл буфера принадлежит вашей работе, - получить номер задания
atq
.Преобразовать номер задания в гекс. например, 38 (dec) = 26 (hex).
Ваш файл будет называться буквой очереди (в 99% случаев
a
), за ним будет шестизначный шестнадцатеричный идентификатор задания (я узнал об этом, просматривая исходный кодat
команды).Тогда вы можете просмотреть стандартный вывод
источник