2024-01-04
服务器
crontab、nginx1.24
303

一、shell 脚本

1.创建脚本
vim /www/shell/nginx_log_cut.sh
2.写入内容
#!/bin/bash

# 时间变量
DATE=`date "+%Y%m%d%H%M"`

# nginx 日志存放位置  
LOG_DIR="/www/log/nginx"

# nginx.pid 存放位置
NGINX_PID="/usr/local/software/nginx1.24/logs/nginx.pid"

# nginx 日志切割完成后存放位置
LOG_CUT_DIR="${LOG_DIR}/log_cut"
# 检测目录是否存在,如果不存在自动创建目录
if [ ! -x $LOG_CUT_DIR ];then
    cd "/www/shell"
    mkdir $LOG_CUT_DIR
    chmod 755 $LOG_CUT_DIR
fi

# 进入 nginx 日志存放位置
cd $LOG_DIR
# 循环查找 nginx 日志存放位置日志
for LOG in `ls *.log`
do
# 修改日志文件命名
   mv $LOG $DATE-$LOG
# 移动到切割完成日志存放位置
   mv $DATE-$LOG $LOG_CUT_DIR
done

# 向 nginx 主进程发送信号,用于重新打开日志文件
/bin/kill -HUP `cat $NGINX_PID`

# 删除 30 天以前的日志文件 -type f 选项来限制只删除文件(排除目录)
find $LOG_CUT_DIR -mtime +30 -name "*.log-*" -type f -print0 | xargs -0 rm -f;

二、定时任务

1.开启 crontab
service crond start
service crond stop 
service crond restart
2.加入定时任务
crontab -l # 查看定时任务
crontab -e # 写入定时任务

# 每天凌晨 00:01 执行一次
1 0 * * * sh /www/shell/nginx_log_cut.sh