背景:
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 {} \;