linux切割、备份大的nohup日志文件
发表于:2021-12-16 |

背景:
nohup.out日志文件太大了,且一直增长,命令查看日志受阻

目的:
①切割大文件变成多个小文件
②每天定时保存前一天的日志,重新记录当天日志

具体做法:
1.利用split命令切割
①按文件大小切割大文件:
切割文件:将ohup.out文件每500M切割一个文件放到/home/nginx/logs/newlog/目录下

split -b 500m nohup.out /home/nginx/logs/newlog/
eg:
split -b 50m /home/nginx/logs/newlog/b.log /home/nginx/logs/newlog/
②按文件行数切割大文件:
查询文件行数:
wc -l b.log
2038711 b.log
按50W行切割一个文件:
split -l 500000 -d -a 4 /home/nginx/logs/b.log /home/nginx/logs/newlog/
2.定时备份前一天日志,重新记录当天日志splitlog.sh

this_path=$(cd `dirname $0`;pwd)	
cd $this_path	
#echo $this_path	
current_date=`date -d "-1 day" "+%Y%m%d"`	
#echo $current_date	
split -b 100m -d -a 4 /home/nginx/logs/nohup.out   /home/nginx/logs/newlog/log_${current_date}_	

cat /dev/null > nohup.out	

3.定时执行
查看定时任务:
crontab -l
编辑定时任务:
crontab -e

0 0 * * * /home/nginx/logs/splitlog.sh

重启定时任务:

sudo service crond restart
补充:
删除10天以前的日志文件,此日期为文件本身的时间,非日志内容时间

#!/bin/sh	
find /u02/tomcat/service/logs/ -mtime +10 -name "*.tmp" -exec rm -rf {} \;	
find /home/tomcat/webApp/javalogs/ -mtime +10 -name "*.log" -exec rm -rf {} \;	
上一篇:
vue启动项目时,npm无法安装东西的解决办法
下一篇:
shell 中的 -eq -ne -gt -lt ge le