配置前奏2
2025年5月31日大约 2 分钟
测试相关
测试(示例)
/usr/sbin/logrotate -d -f /etc/logrotate.d/sql /usr/sbin/logrotate -d -f /etc/logrotate.d/制造(示例)
head -c 10M < /dev/urandom >/data/log/nginx/access.log测试执行
/usr/sbin/logrotate -f /etc/logrotate.d/sql配置目录
/etc/logrotate.d/创建切割日志目录
mkdir -p /data/log/mysql/days && mkdir -p /data/log/nginx/days && mkdir -p /data/log/php/days模拟数据
head -c 10M < /dev/urandom >/data/log/nginx/access.log配置示例:
mysql
/etc/logrotate.d/myql
/data/log/mysql/*.log {
daily
rotate 7
create
missingok
copytruncate
notifempty
nocompress
dateext
size 500K
olddir /data/log/mysql/days
sharedscripts
postrotate
/etc/init.d/nginx reload
endscript
} logrotate -vf /etc/logrotate.d/mysqlnginx
/data/log/nginx/access.log
/data/log/nginx/nginx_error.log参考
/data/log/nginx/*.log {
daily //每天
rotate 7 //备份7份
create //新建
missingok //在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
copytruncate //用于还在打开中的日志文件,把当前日志备份并截断
notifempty //如果是空文件的话,不转储
nocompress // 不压缩
dateext // //这个参数很重要 就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式
size 500K //达到500KB以后才切割
olddir /data/log/nginx/days
sharedscripts //运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
postrotate // 在logrotate转储之后需要执行的指令
/etc/init.d/nginx reload
endscript
}实际
/data/log/nginx/*.log {
daily
rotate 7
create
missingok
copytruncate
notifempty
nocompress
dateext
size 500K
olddir /data/log/nginx/days
}测试
logrotate -vf /etc/logrotate.d/nginxphp
/data/log/php/php_errors.logphp
/data/log/php/*.log {
daily
rotate 7
create
missingok
copytruncate
notifempty
nocompress
dateext
size 500K
olddir /data/log/php/days
}测试
logrotate -vf /etc/logrotate.d/phpLaravel项目配置
正式:
mkdir -p 项目路径/storage/app/public/sql/daysLaravel_SQL
项目路径/storage/app/public/sql/*.log {
daily
rotate 7
create
missingok
copytruncate
notifempty
nocompress
dateext
size 500K
olddir 项目路径/storage/app/public/sql/days
} /usr/sbin/logrotate -f /etc/logrotate.d/sql