LEN

Linux shell 定时删除日志文件并压缩
#!/bin/bash # 每日压缩日志脚本 # 获取当前/data磁盘 date...
扫描右侧二维码阅读全文
13
2017/04

Linux shell 定时删除日志文件并压缩

    #!/bin/bash
    # 每日压缩日志脚本
    # 获取当前/data磁盘
    date="$(date)"
    echo "当前时间${date}"
    mnt='/'
    user="$( df -h |grep $mnt |awk '{print $5}' | cut -f1 -d '%'|head -n 1  2>&1 )"
    if [ ! -n "$user" ]; then
        echo "无法找到挂在磁盘 ${mnt}"
        exit
    fi
    dir=$1
    day=$2
    echo "当前日志磁盘空间使用 ${user}%"
    if [ ! -n "$dir" ]; then
        echo "缺少日志目录, 及要删除日志的天数"
        exit
    fi
    if [ ! -n "$day" ]; then
        echo "请选择要删除几天前的日志文件"
        exit
    fi
    echo "压缩 ${dir} 目录下所有${day}天以前的最后操作的日志文件"
    sleep 1

    for file in $(find $dir -mtime +$day -name '*.log')
    do
        #判断文件名是否存在 预防rm -rf 问题
        if [ ! -f "$file" ]; then
            echo "${file} 文件不存在"
            exit
        fi
        echo "gzip -c ${file} > ${file}.gz"
        gzip -c $file > "${file}.gz" 
        echo "rm -rf ${file}"
        rm -rf $file
    done

    echo '解压缩命令 gunzip -c filename.gz > filename '

    echo "压缩成功"

    
    

写的比较简陋 但是亲测有效

0 1 0 0 0 /bin/sh /home/test.sh 2>&1 >/home/test.log

每天1点执行shell 脚本

Last modification:April 13th, 2017 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment