AMH下定时分割日志教程

作者: admin 分类: 运营、维护日志 发布时间: 2018-02-22 11:47

最近查看百度站长工具,蜘蛛抓取耗时有时候特别长,需要查看日志,在AMH控制面板后台开启了日志功能,但是通过XFTP找到日志,发现尽然有1.57G!这么大的日志下载数据到本地都要几个小时(我的服务器带宽才1M),分析日志也是个大问题。而AMH后台却是没有分割日志的功能的,百度后,发现很多教程,不过有的并不能用,更多的不是针对AMH控制面板操作的。通过一番尝试,终于实现了定时分割成功,下面是教程:

一,把下面代码保存为文件:cut_nginx_log.sh(名称自己定义,后缀名不能变)

#!/bin/bash
#function:cut nginx log files shell
#设置您的网站访问日志保存的目录,我的统一放在了/home/wwwlogs目录下
log_files_path="/home/wwwroot/mianfeidianhua.net/log/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
#设置你想切割的nginx日志文件名称,比如设置的日志文件名是mianfeidianhua.net.log 的话,那这里直接填写 mianfeidianhua.net 即可
log_files_name=(access)
#设置nginx执行文件的路径。
nginx_sbin="/usr/local/nginx/sbin/nginx"
#设置你想保存的日志天数,我这里设置的是保存30天之前的日志
save_days=30
############################################
#Please do not modify the following script #
############################################
mkdir -p $log_files_dir
log_files_num=${#log_files_name[@]}
#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
done
#delete 30 days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload

由于可能存在编码问题,把我的代码直接提供下载,供参考:

点击下载

二,通过xftp把上面的文件上传到日志所在目录(也可以上传到其它目录,不过为了方便,我是上传到了日志所在目录),然后授权脚本的执行权限,代码如下,通过SSH登录,然后把下面代码复制,回车:

chmod +x /home/wwwroot/mianfeidianhua.net/log/cut_nginx_log.sh

三,在SSH下输入:

amh crontab 

会要你通过数字选择执行方式,数字1是查看当天的定时执行任务计划;数字2是加入定时执行任务。选择数字2,然后输入代码:

00 00 * * * /bin/bash /home/wwwroot/mianfeidianhua.net/log/cut_nginx_log.sh

回车执行以后,你可以查看下是否能看到有这条定时执行任务了,如果有,应该就是没问题了。在使用这里的代码的时候,要注意路径不要搞错!

相关文章

发表评论

邮箱地址不会被公开。 必填项已用*标注

Powered by 草根站长笔记 © 2015-2020 草根站长笔记 Inc.版权所有,禁止转载