Dokcer下Nginx日志清理
大熊•
日志清理脚本
在 Docker 中清理 Nginx 日志,首先准备脚本clearLog.sh
脚本
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
LOGS_PATH=/data/srv/nginx/logs
LOGS_BAK_PATH=/data/srv/nginx/logs
cp ${LOGS_PATH}/access.log ${LOGS_BAK_PATH}/access_${YESTERDAY}.log
> ${LOGS_PATH}/access.log
error_log=${LOGS_PATH}/error.log
if [ -e $error_log ]
then
cp ${error_log} ${LOGS_BAK_PATH}/error_${YESTERDAY}.log
> ${error_log}
fi
cp ${LOGS_PATH}/index.log ${LOGS_BAK_PATH}/index_${YESTERDAY}.log
> ${LOGS_PATH}/index.log
docker exec nginx nginx -s reload
功能是将日志目录下的 xx.log 重新命名为 xx_yesterday.log 的形式。
并将 xx.log 文件内容清空。
LOGS_PATH
原始日志地址。
LOGS_BAK_PATH
新的日志文件地址。
if [ -e $error_log ]
判断文件是否存在。
注意里面使用的 docker 命令很厉害,还能这样直接操作。
创建每天一次的任务计划
代码需要每日 00:01:00 执行一次。
vi /etc/crontab
编辑任务计划
#for Split nginx logs
1 0 * * * root bash /data/srv/nginx/clearLog.sh
执行并保存 crontab /etc/crontab
查看任务: crontab -l