Я просто ленив здесь, но кто-нибудь уже написал сценарий bash для остановки службы tomcat, заархивировал его файлы журнала (zip было бы неплохо) и перезагрузил сервер? (Используя logrotate или любой другой инструмент)
Я хочу создать задание cron со следующим скриптом:
#!/bin/bash
service tomcat stop
# now I don't know what to do with logrotate or something else
init 6
Пожалуйста помоги.
Вы можете создать файл конфигурации для logrotate, который позаботится о ротации журналов. Вы можете разместить его вне logrotate.d, а затем просто использовать при вызове logrotate вручную.
Образец:
/path/to/logs/*.log {
missingok
rotate 30
compress
delaycompress
notifempty
create 640 tomcat tomcat
sharedscripts
}
А затем сделайте свой сценарий
#!/bin/bash
service tomcat stop
logrotate -f /path/to/your/newly/created/conf/for/logrotate.conf
init 6
Вместо того, чтобы надеяться, что кто-то написал один суперскрипт, который сделает все это, начните с написания сценария, который архивирует файлы журнала при запуске. Если это быстро, добавьте его в сценарии K * после остановки tomcat во время перезагрузки или остановки уровней запуска. Если он медленный, некоторые дистрибутивы просто убивают все через пару секунд, если их сценарий остановки занимает «слишком много времени». Добавьте его в автозагрузку перед запуском tomcat.
Тогда просто shutdown -r now
и об этом позаботятся.