nginx 是没有自动分割日志的,所以就需要自己实现日志分割
原 站点所有日志都放在一个目录里(文件名即站点名)
分割方式:每个站点一个目录,每天生成一个日志文件,根据文件名称生成目录
呆狐狸.凨
1.lanmps_cut_log.sh shell文件
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:~/bin export PATH # Check if user is root if [ $UID != 0 ]; then echo "Error: You must be root to run the install script, please use root to install lanmps";exit;fi #日志目录 IN_WEB_LOG_DIR="/www/wwwLogs" YESTERDAY=`date -d "yesterday" +%Y-%m-%d` [ ! -d $IN_WEB_LOG_DIR/logs ] && mkdir $IN_WEB_LOG_DIR/logs for filename in `ls $IN_WEB_LOG_DIR` do if [ -f $IN_WEB_LOG_DIR/$filename ] ; then #echo $IN_WEB_LOG_DIR/$filename #echo $IN_WEB_LOG_DIR/logs/${filename%.log}/${YESTERDAY}.log tmpPath=$IN_WEB_LOG_DIR/logs/${filename%.log} [ ! -d $tmpPath ] && mkdir $tmpPath mv $IN_WEB_LOG_DIR/$filename $tmpPath/${YESTERDAY}.log rm -rf $IN_WEB_LOG_DIR/$filename fi done #nginx pid 文件位置 kill -USR1 `cat /www/lanmps/nginx/logs/nginx.pid`保存位置 例如:/root/lanmps_cut_log.sh
2.定时任务
#在 每天凌晨00:01运行 1 0 * * * /root/lanmps_cut_log.sh
3.设置
3.1 crontab命令
功能说明:设置计时器。语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]
补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command
参 数:
-e 编辑该用户的计时器设置。
-l 列出该用户的计时器设置。
-r 删除该用户的计时器设置。
-u<用户名称> 指定要设定计时器的用户名称。
3.2 crontab 格式
基本格式 :* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
3.3 案例
首先,输入
crontab -e然后输入
1 0 * * * /root/lanmps_cut_log.sh完成