Nginx日志切割脚本
目前网上也有一些Nginx日志切割脚本,但是论坛还是有用户反映网上Nginx日志切割脚本有问题,我感觉一般是因为脚本中的参数设置问题,或者是crontab中的设置问题。
为方便lnmp一键安装包用户,我也写了一个Nginx日志切割脚本,下载地址:http://soft.vpser.net/lnmp/ext/cut_nginx_logs.sh
如果是lnmp0.5/0.6/0.7/0.8/0.9通用,用户可以仅修改log_files_name后面的要切割的日志文件名就直接使用。
脚本主要参数:
#设置nginx日志文件目录路径
log_files_path="/home/wwwlogs/"
#日志文件将会存放到/home/wwwlogs/年/月/日志文件名_年月日.log
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
log_files_name=(access vpser.net licess)
#设置nginx文件的位置
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置日志保存的时间,天
save_days=30
如果是非lnmp一键安装包用户可以通过修改上述参数适应你的nginx环境。
将nginx日志切割脚本下载到/root/下面。再添加自动执行,执行:crontab -e
输入:00 00 * * * /bin/bash /root/cut_nginx_logs.sh 每天0点整开始切割脚本。
本文仅供Nginx用户及lnmp用户参考,如有问题欢迎到https://bbs.vpser.net反馈。
原创文章谢绝转载!
>>转载请注明出处:VPS侦探 本文链接地址:https://www.vpser.net/manage/cut-nginx-log-files.html
因为经常会建新站
每建一个新站都要编辑一下脚本文件很麻烦
所以想问如何设置可以自动切割"/home/wwwlogs/"下所有日志
@美剧排行榜, 用户可以仅修改log_files_name后面的要切割的日志文件名就直接使用。
#设置要切割的日志的名字,如果日志目录下面的日志文件名为vpser.net.log,则填写vpser.net,每个日志名用空格分隔
请仔细查看解释说明
lnmp0.9日志分割怎么实现!!!!上面说的,,都不知道怎么改!!是命令。。还是文件,,,迷茫!!
@mengzc, 看一下系统时间
我刚安装好,已经在分割的日志文件日期怎么是昨天的?
@看电影的网站, 最正规的方法就是crontab -e添加
在网上看到很多人都说使用/etc/crontab来执行计划任务但是我没有成功,使用crontab -e就可以了,不知道为什么。
#!/bin/bash
#自动版日志切割 无需设置
#function:cut nginx log files for lnmp v0.5 and v0.6
#author: http://lnmp.org
#set the path to nginx log files
log_files_path="/home/wwwlogs/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#set the path to nginx.
nginx_sbin="/usr/local/nginx/sbin/nginx"
#Set how long you want to save
save_days=30
############################################
#Please do not modify the following script #
############################################
mkdir -p $log_files_dir
cd $log_files_path
#cut nginx log files
for d in `ls -f *.log`;do
mv ${log_files_path}${d} ${log_files_dir}/$(date -d "yesterday" +"%Y%m%d")_$d
done
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload