【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
相关推荐
木子欢儿2 小时前
Debian系统清理垃圾
linux·运维·服务器·debian
谷晓光2 小时前
python中print函数的flush如何使用
linux·服务器·数据库
Hacker_Albert2 小时前
Linux 内核模块签名
linux
AdrichPro3 小时前
4、linux c 进程
linux·运维·服务器·c语言
2301_779503765 小时前
K8s的部署
linux·容器·kubernetes
why—空空5 小时前
linux系统CentOS 7版本搭建NFS共享存储
linux·运维·centos
不甘平凡--liang6 小时前
Linux Nginx安装部署、注册服务
linux·运维·服务器
小妖6667 小时前
linux (centos) 的 nodejs 安装全局包后使用命令无效
linux·运维·centos
不穿格子衬衫7 小时前
感受命令行界面的魅力——Linux环境下基础开发工具的使用
linux·运维·centos
誓约酱7 小时前
linux 下消息队列
linux·运维·服务器·c语言·c++