背景:
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/
②按文件行數(shù)切割大文件:
查詢文件行數(shù):
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.定時執(zhí)行
查看定時任務:
crontab -l
編輯定時任務:
crontab -e
0 0 * * * /home/nginx/logs/splitlog.sh
重啟定時任務:
sudo service crond restart
補充:
刪除10天以前的日志文件艘蹋,此日期為文件本身的時間锄贼,非日志內(nèi)容時間
#!/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 {} \;