Я создал 3 ежедневных задания cron для запуска.
Ниже приведены три, которые находятся в etc / cron.daily
rkhunter.sh
#!/bin/sh
(
rkhunter --versioncheck
rkhunter --update
rkhunter --cronjob --report-warnings-only
) | mail -s 'rkhunter Daily Run (my server)' me@email.com
chkrootkit.sh
#!/bin/bash
chkrootkit | mail -s "chkrootkit Daily Run (my server)" me@email.com
logwatch.sh
#!/bin/sh
(
logwatch
) | mail -s 'logwatch Daily Log (my server)' me@email.com
Я заменил me@email.com ofcourse своей электронной почтой.
Если я запускаю этот cronjob вручную, он работает нормально ./nameoffile.sh
Но это не работает ежедневно, в чем может быть причина или как я могу проверить это?
command-line
email
cron
rkhunter
ударная волна
источник
источник
Ответы:
Существует два возможных подозреваемых, которые обычно приводят к
cron
невозможности выполнения заданий.Во-первых, это проблемы с разрешениями, то есть пользователь может запустить скрипт / команду, но демон cron не может, потому что задание находится в заданиях cron не того пользователя. Например, пользователь создает сценарий или запускает команду с повышенными привилегиями, т.е. использует
sudo
, а затем добавляет проверенный сценарий / команду в свой список заданий cron (crontab
). В результате задание пользователя cron не сможет быть запущено, так как оно требует повышенных привилегий.crontab -e
sudo crontab -e
Вторая причина - пути, чтобы быть уверенным в том, что скрипт будет выполнен, пользователь должен добавить полный путь к скрипту, который будет выполняться в crontab. Другим решением было бы расширить переменную PATH корневых пользователей, поместив следующую строку вверху их файла crontab:
как вики сообщества упоминает .
Возможно, вы захотите прочитать вики сообщества о cron, так как она содержит более подробную информацию о вышеупомянутом.
источник
Согласно этому ответу, проблема заключается в расширении .sh. Удалите это (например, переименуйте ваш файл из rkhunter.sh в rkhunter.
Для подтверждения выполните следующую команду
run-parts --test /etc/cron.daily
Если ваш скрипт (rkhunter) включен в результаты, все хорошо. Для получения дополнительной информации о команде run-parts прочитайте справочные страницы по ней
man run-parts
источник
man run-parts
«имена должны состоять исключительно из прописных и строчных букв ASCII, цифр ASCII, подчеркиваний ASCII и минус-дефисов ASCII»В моей системе это было потому, что анакрон не был установлен.
Так что либо установите anacron, либо удалите тест -x / usr / sbin / anacron
источник
dpkg --get-selections | grep cron
.. <ругается>anacron
не обязательно;||
оператор в кронтабе команды запускает ,run-parts
когда Anacron НЕ установлен. Когдаanacron
установлено, это делает эти ежедневные / еженедельные / ежемесячныеrun-parts
команды избыточными.Я думаю, что файлы с расширениями игнорируются.
бегать:
Если вы не видите свои скрипты в списке, удалите расширения .sh и попробуйте снова.
источник
Добавляя к ответу Stef, вы также должны убедиться, что они имеют исполняемый бит:
Вы должны быть в состоянии запустить их, используя
chmod +x filename
.источник
Переименуйте ваш файл, чтобы не иметь расширение .sh
Чтобы убедиться, что это проблема, попробуйте
вы увидите, что его нет в списке. Итак, бегите:
и попробуйте еще раз. Это должно быть в списке.
источник
Я не мог запустить его с анакроном, я удалил анакрон из
/etc/crontab
и выполнил,apt remove --purge anacron
и он работает сразу же.Я не понимаю, зачем нам два планировщика.
источник
Та же ситуация сегодня здесь
я сделал
и нашел
Я обнаружил, что кто-то (я !!!!) добавил строку, начинающуюся с
и, очевидно, 38-го часа не существует!
источник