【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
相关推荐
2301_794333912 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
荣光波比3 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
绿箭柠檬茶5 小时前
Ubuntu 使用 Samba 共享文件夹
linux·运维·ubuntu
工藤新一¹6 小时前
Linux —— 虚拟进程地址空间
linux·运维·服务器·c/c++·虚拟进程地址空间
Aspiresky6 小时前
浅析Linux内核scatter-gather list实现
linux·dma·scatter/gather
奔跑吧 android7 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 3】【模拟input子系统input_dev和input_handler之间的多对多关系】
linux·数据结构·input·kernel·input_dev·input_handler·input_handle
再难也得平7 小时前
Linux初级篇
linux·运维·服务器
小猫挖掘机(绝版)8 小时前
通过tailscale实现一台电脑上vscode通过ssh连接另一台电脑上的VMware Linux 虚拟机
linux·windows·vscode·ubuntu·ssh
ajassi20009 小时前
开源 C++ QT Widget 开发(十三)IPC通讯--本地套接字 (Local Socket)
linux·c++·qt·开源
方先森有点懒9 小时前
CentOS 7.2 虚机 ssh 登录报错在重启后无法进入系统
linux·运维·centos·ssh