Войти в хрон в реальном времени
У меня есть процесс Python, который я запускаю по ночам через crontab. Он очищает API, к которому у меня ограниченный доступ, поэтому регулярно приходится останавливаться и ждать час.
По моим оценкам, работа должна занять 5-6 часов.
На данный момент у меня есть crontab как таковой:
05 01 * * * python3 /home/{my username}/path/to/process/main.py >> /var/log/process_name.log 2>&1
Это замечательно и доказало, что файл работает, но я могу проверить вывод только после его завершения, что для меня не идеально. Учитывая время, необходимое для запуска, я бы предпочел, чтобы cron регистрировал вывод и ошибки в реальном времени.
Это немного больше проблема сейчас, так как кажется, что мои оценки неверны, и я могу ждать гораздо дольше, чем я думаю, - в таком случае я хотел бы посмотреть, что регистрируется, чтобы я мог понять, почему.
Есть ли способ записать вывод cron в режиме реального времени?
1 ответ
Вам нужен механизм, называемый сбросом: он заставляет процесс записывать свои выходные данные, которые в противном случае оставались бы в буфере до завершения.
Скрипты оболочки сбрасываются построчно. Если вам нужен вывод сценария оболочки до его завершения, убедитесь, что он содержит новую строку.
Программы Python могут явно очистить свой стандартный вывод, вызвав метод flush:
import sys
sys.stdout.flush()