编写每天定时切割Nginx日志的脚本
站长最关心的事情就是搜索引擎的收录情况,而查看网站日志是了解搜索引擎的蜘蛛有没有访问过网站的最好方法。下面是deepvps自己用的自动每天定时切割Nginx日志的脚本,很方便很好用,推荐给大家使用。本脚本也是参考了张宴老师的文章,再次感谢张宴老师。
1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh
vi /usr/local/nginx/sbin/cut_nginx_log.sh
放到crontab里一分钟执行一次。url和cmd根据自己的改。
原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。
#!/usr/bin/php <!--$url = 'http://www.deepvps.com'; $cmd = '/usr/local/php/sbin/php-fpm restart'; for($i = 0; $i < 5; $i ++){ $exec = "curl connect-timeout 3 -I $url 2>/dev/null"; $res = shell_exec($exec); if(stripos($res, '502 Bad Gateway') !== false){ shell_exec($cmd); exit(); } } -->
PUTTY默认不支持记住密码,修改版的还是不要用,好在SSH支持证书登陆,我也问了生产环境下的朋友,他们登陆SSH也是用证书.
这里介绍的不是双Linux环境下的SSH证书登陆,而是Windows下用Putty证书登陆至你的Linux服务器/VPS.
目前我用的是Putty中文版,来自GoogleCode的项目:http://code.google.com/p/puttycn/
crontab是linux vps下面常见的定时工具。它可以隔一段时间就进行一次你预期定好的命令。
可以把你需要处理的命令写成脚本,放在bats.sh里面。
使用crontab -e 进行编辑调用定时执行。
# [分钟] [小时] [一个月中的某一天] [月份] [一周中的某一天] [命令]
30 * * * * /home/netroby/backup/autobak.sh
# */30表示每 30分钟, 如果这里写的是30,那么就是每小时的30分的时候
官网:http://myget.sourceforge.net/
安装很方便,
wget http://myget.sourceforge.net/release/myget-0.1.2.tar.gz
解压
tar zxvf myget-0.1.2.tar.gz
进入目录
cd myget
网站根目录不正确的权限除了会带来安全性,还可以导致类似执行请求动作,连接信息必需提供这样的ftp问题,该如何正确设置网站根目录的权限呢?
今天这里主要讨论给网站根目录添加sgid权限
给目录添加sgid权限,可以使在该目录下创建文件或文件的所属组继承该目录的所属组。
磁盘空间被耗尽的时候,免不了要清理一下,比如说/home目录太大,就可以使用下面命令看看到底是谁:
du -s /home/* | sort -nr
也可以用find,查找大于200M的文件并显示详细信息
find . -size +100000000c -exec ls -lh {} ;
比如要对 网站目录下的 test 文件夹 进行加密认证
那么 在 nginx.conf 文件中对应的 server 段中 添加
location ^~ /test/ {
auth_basic TEST-Login;
auth_basic_user_file /root/htpasswd;