linux定期清理nohup日志

发布时间 2024-01-08 11:09:58作者: wjbk

1、在nohup.out 所在目录创建一个clearNohup.sh文件

2、在文件里复制下面脚本

#!/bin/bash
# Author: jianwang
# Last Update: 2024.01.08
# Description: nohup.out 日志分割
 
this_path=$(cd `dirname $0`;pwd)   #根据脚本所在路径
current_date=`date -d "-1 day" "+%Y-%m-%d"`   #列出时间
cd $this_path
echo $this_path
echo $current_date  

do_split() {
    [ ! -d logs ] && mkdir -p logs
    split -b 100m -d -a 4 ./nohup.out   ./logs/nohup-${current_date}-  #切分100兆每块至logs文件中,格式为:nohup-MM-DD-0001
    if [ $? -eq 0 ];then
        echo "Split is finished!"
    else
        echo "Split is Failed!"
        exit 1
    fi
}
 
do_del_log() {
    find ./logs -type f -ctime +7 | xargs rm -rf #清理7天前创建的日志
    cat /dev/null > nohup.out #清空当前目录的nohup.out文件
}
 
if do_split ;then
    do_del_log
    echo "nohup is split Success"
else
    echo "nohup is split Failure"
    exit 2
fi
 
# crontab -e 添加定时任务:每天的1点执行一次
#0 1 * * */1 /server/scripts/clearNohup.sh

3、添加定时任务

//输入命令(第一次输入该命令需要选择编辑器,选/usr/bin/vim.basic)
crontab -e

//然后编辑定时任务(每天的1点执行一次),保存退出
0 1 * * */1 /server/scripts/clearNohup.sh

4、查看是否添加成功

crontab -l
如果显示有
0 1 * * */1 /server/scripts/clearNohup.sh
表示成功