【shell脚本】shell脚本之日志切割(进阶实战三)

恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。

shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。

shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。

有需要的可以从这里开始,可以教会你如何去进行shell脚本的编写,提高你的工作效率。

从第一篇基础开始:
【shell脚本】shell脚本之概念、运行方式、变量的使用、交互式脚本、运算(shell脚本基础学习一)_向往风的男子的博客-CSDN博客

关于shell的学习就到这里了,还想系统学习terraform的同学,也可以关注我的terraform专栏学习,大家一起学起来。

复制代码
ARCHIVE_DATE=`date +"%Y%m%d" -d "-1day"`
# 需要分割的日志文件名绝对路径,可以配置多个
TARGETS="/home/nginx/bin/nlp3/chat_log/log.log"
KEEP_DAYS=3
for target in $TARGETS
do
        FILE=`basename $target`
        BASEDIR=`dirname $target`
        cd $BASEDIR && echo $BASEDIR/$FILE && cat $FILE >> $FILE$ARCHIVE_DATE
        tar -czvf $FILE.$ARCHIVE_DATE.tar.gz $FILE.$ARCHIVE_DATE && rm -rf $FILE.$ARCHIVE_DATE && cat /dev/null > $FILE
        find "${BASEDIR}" -type f -name "$FILE_*.tar.gz" -mtime +${KEEP_DAYS} -exec rm -rf {} \;
done


·······································
#!/bin/sh
exit 0
dir="/home/nginx/logs/"
delete () {
        tag=$1
        c=$(ls -v ${dir}/${tag}* | wc -l)
        n=`expr $c - 1`
        if [ $n -gt 0 ];then
        for i in `ls -v ${dir}/${tag}-*.log | head -$n`; do
                echo $i;
                rm -f $i
        done
        fi
}
#delete "access"
#delete "error"
log="/home/nginx/work/logs"
now=`date '+%Y-%m-%d'`
cp ${log}/access.log ${dir}/access-$now.log
echo "" > ${log}/access.log
cp ${log}/error.log ${dir}/error-$now.log
echo "" > ${log}/error.log

···································································
#!/bin/bash
#日志目录
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date --date="yesterday" +%Y-%m-%d)
SEVENDAY=$(date --date="7 days ago" +%Y-%m-%d)
rm -rf ${LOGS_PATH}/error-${SEVENDAY}.log
rm -rf ${LOGS_PATH}/access-${SEVENDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error-${YESTERDAY}.log
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access-${YESTERDAY}.log
#重启nginx
#service nginx restart
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
/usr/local/nginx/sbin/nginx -s reload
相关推荐
kkkkkkkkkk_Z31 分钟前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla34 分钟前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
Lsetea2 小时前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl
云计算练习生2 小时前
什么是文件权限?Linux 中 rwx 与数字权限的对应关系
linux·运维·服务器·操作系统·文件权限管理
叼烟扛炮2 小时前
Linux 学习笔记(十三):高效排错利器——GDB 调试器入门
linux·笔记·学习
饿了吃洗衣凝珠2 小时前
red hat day2
linux·运维·服务器
天南散修3 小时前
《802.11-2024》第08讲 · 聚合与块确认:把「一次一帧」变成「一次一批」
linux·网络·wifi·802.11
Dxy12393102164 小时前
Linux 服务器 vi 命令怎么使用
linux·运维·服务器
叼烟扛炮4 小时前
Linux 学习笔记(十五):进程的魔法 fork 与 僵尸孤儿
linux·运维·服务器
第404号工位4 小时前
插上充电宝真能偷光相册?我拆解了一台改装充电宝,实测“恶意充电”的真实攻击链
linux·python·架构