8

Есть ли команда, которую можно запустить, чтобы убедиться, что задание пользователя cron успешно выполнено?

Платформа Ubuntu 8.04 LTS.

У меня есть скрипты в /home /useraccount /bin /

Бег

crontab -l

при входе в систему как пользователь приводит к:

# m h  dom mon dow   command

@hourly /home/useraccount/bin/script_1

@hourly /home/locateruser/bin/script_2

Я понимаю, что сценарии могут отправлять сообщения электронной почты или записывать в журнал с отметкой времени, но мне интересно, есть ли способ проверить, запускается ли это из командной строки.

РЕДАКТИРОВАТЬ :

Я побежал

ps -ef|grep cron 

... и это показывает

root      4358     1  0 Mar12 ?        00:00:00 /usr/sbin/cron

Не уверен, если это указывает, что он выполняет задания, хотя ....

5 ответов5

13
grep scriptname /var/log/syslog
4

/ Вар / Журнал / хрон

Вы можете проверить, работает ли он с:

ps aux
2

Чтобы убедиться, что скрипт успешно завершен, нужно использовать временный файл. Создайте его, когда задание начнется, и удалите, когда оно закончится. Это также ловит сбои и позволяет избежать повторного выполнения той же работы в случае ошибок.

#!/bin/bash

# check if there is already a temp file with suffix .myscript in /tmp,
# if file exists return with status of 666
[ -f /tmp/*.bla ] && exit 666

# create a temp file with suffix .myscript
TEMP_FILE=`mktemp --suffix .myscript`
touch $TEMP_FILE

#
# script stuff
#

# we are done, clean-up after ourselves
rm $TEMP_FILE
1

Я создал инструмент http://cronitor.io, потому что мне нужно было решение для отслеживания нескольких заданий cron, и я не был доволен существующими опциями. Это бесплатно контролировать одну работу, и есть платные планы для использования в бизнесе.

Что хорошо в Cronitor, так это то, что вы просто даете ему выражение cron, например */5 * * * MW, и вы будете предупреждены, если задание не запускается по расписанию, выполняется дольше, чем ожидалось, или перекрывает себя.

0

Вы также можете получить результаты по электронной почте.

30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
           mail -e -s "task #1 report" postmaster@example.com

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .