Команда крона Montecristo является хорошим способом запланировать задание каждые 20 минут. Как записано, тем не менее, это запустит новый экземпляр "команды", не уничтожая старую. И при этом это не помещает запись в "test1.log".
Я предполагаю, что целевую программу называют "#logdrift" (ведущий хеш законен, но это представляет некоторые неловкие проблемы выхода), и что Вы требуете точно одного экземпляра его работающий в любом случае.
Вместо того, чтобы выполнить запись крона целевой процесс непосредственно, я создал бы простой сценарий обертки и выполнил бы это каждые 20 минут. Здесь, обертка имела бы 3 обязанности:
Однако большинство программ не должно требовать регулярного перезапуска. Вместо того, чтобы бросить вместе быстрое обходное решение как задание крона и сценарий обертки, может быть более уместно решить базовую проблему.
Я использовал бы logrotate, чтобы сделать это, можно затем настроить сообщение, поворачивают сценарий (использующий постповорачивать директиву), который активируется от logrotate для перезапуска той программы. Традиционно, та программа должна взять сигнал SIGHUP вновь открыть его журналы, но я никогда не слышал о logdrift.
Logrotate назовут с помощью крона (который является тем, что Вы используете для выполнения чего-либо каждые X минуты, часов, дней, и т.д.). Logrotate также обработает постепенное увеличение журналов, беря предыдущие журналы и заставляя их зарегистрироваться 1 и затем заставляя журнал 1 зарегистрироваться 2 и т.д...
Если бы эта программа является демоном, я создал бы init сценарий для запуска ее и остановки ее. Эта статья имеет пример о том, как сделать это для Redhat как системы. См. сценарии в/etc/init.d/для примеров того, как программы остановлены и запущены.
*/20 * * * * /path/to/your/command
Это работает каждые 20 минут.
Для изменения количества файла журнала, Вы могли посмотреть в каталоге, где это находится, и проанализируйте его имя, если это не будет иметь никакого числа, то новый файл будет иметь 1 перед точкой, если это будет иметь число, просто добавляют 1 к нему.
Мне лично не нравится идея наличия переменной с более широким объемом для содержания количества.
Там уже существует большая утилита, чтобы сделать это, о котором забывает много людей: init
Я предлагаю добавить:
ld:35:respawn:/usr/local/bin/logdrift -f 10.15.12.10 test-$(%F-%T).log
к/etc/inittab.
Единственная вещь, о которой необходимо волноваться, состоит в том, что, если процесс повторно мечет икру слишком быстро (> 10 раз через 2 минуты) он откажется повторно выполнять его в течение 5 минут. Полагайте что функция.:)
в кроне:
* * * * sun,tue,thu,sat shutdown -r now
Это перезагружает в воскресенье, во вторник, в четверг, и в субботу.