利用Linux+Nginx搭建最好的网络环境

Nginx的稳定性无与伦比,今天不废话直接上硬核

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#此文件适用于宝塔下的定时切割日志
#!/bin/bash
#function:cut nginx log files shell

log_files_path="/www/wwwlogs/"
log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")

#设置你想切割的nginx日志文件名称,不带.log
log_files_name=(axxxxx.xxxx)
#设置nginx执行文件的路径。
nginx_sbin="/www/server/nginx/sbin/nginx"
#设置你想保存的日志天数,我这里设置的是保存30天之前的日志
save_days=7

############################################
#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 $save_days days ago nginx log files
find $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload

说明:

    1. 保存上面xxxx.sh存放在任意位置并且给权限755
    1. 设置定时器,并且运行定时器
    • crontab -l #查看现有全部定时器
    • crontab -e #编辑定时器内容
      定时器格式示例:
      20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1
    • crontab -r #删除当前定时器内容
    1. service crond restart #重启定时器




crontab 定时器大纲:

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 7) (星期天 0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
0 */2 * * * /sbin/service httpd restart  #意思是每两个小时重启一次apache 

50 7 * * * /sbin/service sshd start #意思是每天7:50开启ssh服务

50 22 * * * /sbin/service sshd stop #意思是每天22:50关闭ssh服务

0 0 1,15 * * fsck /home #每月1号和15号检查/home 磁盘

1 * * * * /home/bruce/backup #每小时的第一分执行 /home/bruce/backup这个文件

00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; #每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

30 6 */10 * * ls #意思是每月的1、11、21、31日是的6:30执行一次ls命令