linux中用shell脚本对tomcat和nginx做日志切割_shell catalina
以下是一个简化的Shell脚本示例,用于对Tomcat和Nginx日志进行切割:
#!/bin/bash
# 定义日志文件所在的目录
LOG_DIR="/var/log/tomcat"
# 对Tomcat的catalina.out日志进行切割
cd $LOG_DIR
TOMCAT_LOG="catalina.out"
SIZE_LIMIT="100M"
# 如果日志文件大于100M,则进行切割
if [ -f "$TOMCAT_LOG" -a -s "$TOMCAT_LOG" ]; then
SIZE=$(du -b "$TOMCAT_LOG" | cut -f 1)
if [ "$SIZE" -gt "$SIZE_LIMIT" ]; then
mv "$TOMCAT_LOG" "${TOMCAT_LOG}.$(date +%Y%m%d%H%M%S)"
touch "$TOMCAT_LOG"
chown tomcat:tomcat "$TOMCAT_LOG"
fi
fi
# 对Nginx的access.log和error.log进行切割
NGINX_LOG="/var/log/nginx"
for LOG in "access.log" "error.log"; do
if [ -f "${NGINX_LOG}/${LOG}" -a -s "${NGINX_LOG}/${LOG}" ]; then
mv "${NGINX_LOG}/${LOG}" "${NGINX_LOG}/${LOG}.$(date +%Y%m%d%H%M%S)"
touch "${NGINX_LOG}/${LOG}"
chown nginx:nginx "${NGINX_LOG}/${LOG}"
fi
done
# 使用logrotate进行系统自带的日志轮转
logrotate /etc/logrotate.conf
这个脚本首先定义了日志文件所在的目录,然后对Tomcat的catalina.out日志和Nginx的access.log和error.log进行切割。切割后,使用logrotate
命令应用系统的日志轮转配置,以自动处理其他系统日志文件的切割和压缩。
评论已关闭