【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
相关推荐
AR-26710-7 小时前
Linux Day16——日志
linux·运维
小HANN7 小时前
华为云企业网站上云实战|从零搭建高可用WordPress(ECS+RDS+ELB+弹性伸缩+云监控全流程落地)
linux·运维·服务器·经验分享
susplus8 小时前
【IMX6ULL Linux系统移植】SD卡分区 | uboot详解
linux·arm·u-boot
@三十一Y8 小时前
Linux:实现简易的shell
linux
2301_777998349 小时前
TCP连接断开:进程终止、主机断电与网络断开
linux·服务器·网络·tcp/ip
星恒随风9 小时前
Linux进程基础(二):进程调度、上下文切换、O(1)调度器、环境变量与虚拟地址空间
linux·笔记·学习·状态模式
xbzb10 小时前
一边装一边报错:CentOS 7 + LNMP 跑 ECShop 的常见故障与解法
linux·运维·centos
学linux的QQ蛋10 小时前
图解 Linux 驱动编译进内核的完整工作流程
linux·运维·服务器
承渊政道10 小时前
Linux网络学习【UDP Socket编程实战:网络命令与客户端访问Linux验证】
linux·网络·学习·ubuntu·编程实战·udp socket
程序员-Benothing10 小时前
正则表达式详解:BRE、ERE、PCRE语法与实战案例
linux·运维·服务器