我只是在这里偷懒,但是有没有人已经编写了 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
请帮忙。
答案1
您可以为 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
答案2
不要指望有人能写出一个超级脚本来完成所有工作,而是先写一个脚本,在运行时归档日志文件。如果速度很快,请在重新启动或停止运行级别期间停止 tomcat 后将其添加到 K* 脚本中。如果速度很慢,某些发行版会在停止脚本“耗时太长”的情况下,在几秒钟后终止所有内容。在启动 tomcat 之前将其添加到启动中。
然后,一切shutdown -r now
就会得到处理。