Создайте автоматический Сценарий перезапуска в Linux

Белка NGS.

Эта загрузка хеши паролей из sysxlogins (или независимо от того, что новое представление и взламывает их: это не загружает живой сервер

(чтобы не быть перепутанным с SQuireL, клиентскими инструментами)

1
задан 1 October 2009 в 15:26
6 ответов

Команда крона Montecristo является хорошим способом запланировать задание каждые 20 минут. Как записано, тем не менее, это запустит новый экземпляр "команды", не уничтожая старую. И при этом это не помещает запись в "test1.log".

Я предполагаю, что целевую программу называют "#logdrift" (ведущий хеш законен, но это представляет некоторые неловкие проблемы выхода), и что Вы требуете точно одного экземпляра его работающий в любом случае.

Вместо того, чтобы выполнить запись крона целевой процесс непосредственно, я создал бы простой сценарий обертки и выполнил бы это каждые 20 минут. Здесь, обертка имела бы 3 обязанности:

  • Уничтожить рабочий экземпляр целевого процесса
  • Запустить новый экземпляр целевого процесса
  • Сделать запись в test1.log

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

2
ответ дан 3 December 2019 в 16:59
  • 1
    Хороший ответ, в особенности конечная часть. Хотя я don' t думают, что команда предназначается для длительности более чем 20 минут Ваш it' s все еще актуальный вопрос. +1 –  Alberto Zaccagni 1 October 2009 в 17:45
  • 2
    я не имею никакого контроля над базовыми проблемами, это вызвано тем, что вход сделан против STBs, который является связанной канавкой Волоконно-оптический Маршрутизатор, вход закрывается, когда клиент, например, удаляет питание для маршрутизатора, но не STB и других сценариев, что я не имею никакого контроля. Поскольку моя компания не делает controle разработка SW на STB, который мы наклоняем, фиксируют способ, которым ведет себя STB, когда она не имеет никакого Соре к релейной информации также. Я - potensialy вход 100 из STBs неделя и необходимость вручную перезапустить, возможно, 5-10% журналов неоднократно, потому что og выходит как это. –   1 October 2009 в 19:10

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

Logrotate назовут с помощью крона (который является тем, что Вы используете для выполнения чего-либо каждые X минуты, часов, дней, и т.д.). Logrotate также обработает постепенное увеличение журналов, беря предыдущие журналы и заставляя их зарегистрироваться 1 и затем заставляя журнал 1 зарегистрироваться 2 и т.д...

Если бы эта программа является демоном, я создал бы init сценарий для запуска ее и остановки ее. Эта статья имеет пример о том, как сделать это для Redhat как системы. См. сценарии в/etc/init.d/для примеров того, как программы остановлены и запущены.

2
ответ дан 3 December 2019 в 16:59
*/20 * * * *  /path/to/your/command

Это работает каждые 20 минут.
Для изменения количества файла журнала, Вы могли посмотреть в каталоге, где это находится, и проанализируйте его имя, если это не будет иметь никакого числа, то новый файл будет иметь 1 перед точкой, если это будет иметь число, просто добавляют 1 к нему.
Мне лично не нравится идея наличия переменной с более широким объемом для содержания количества.

1
ответ дан 3 December 2019 в 16:59

Там уже существует большая утилита, чтобы сделать это, о котором забывает много людей: init

Я предлагаю добавить:

ld:35:respawn:/usr/local/bin/logdrift -f 10.15.12.10 test-$(%F-%T).log

к/etc/inittab.

Единственная вещь, о которой необходимо волноваться, состоит в том, что, если процесс повторно мечет икру слишком быстро (> 10 раз через 2 минуты) он откажется повторно выполнять его в течение 5 минут. Полагайте что функция.:)

1
ответ дан 3 December 2019 в 16:59

Если у Вас есть сценарий запуска, который называет logrotate, Вы могли затем поместить его в inittab с директивой переикры. Это было бы ре запускать процесс любое время, это завершается.

0
ответ дан 3 December 2019 в 16:59

в кроне:

*  *  *  *  sun,tue,thu,sat  shutdown -r now

Это перезагружает в воскресенье, во вторник, в четверг, и в субботу.

0
ответ дан 3 December 2019 в 16:59
  • 1
    Пользователь попросил команду перезапускать регистрирующееся программное обеспечение, не компьютер. –  pavium 1 October 2009 в 15:57

Теги

Похожие вопросы