• 为什么写博客,是因为遇到的坑,不希望别人在踩一遍!
  • 选择了,剩下的就是坚持和努力-------致自己!
  • 当能力达不到梦想时,更需要学习,努力,拼搏

Nginx 日志分割

Linux运维 雪豹 7年前 (2017-08-27) 817次浏览 0个评论

Nginx 日志分割

第1章 详细配置如下。

#建议在mkdir  /home/shell  -p 专门写shell 脚本位置
root@localhost:/home/shell# cat nginxcut.sh 
#!/bin/sh
#####
#by xuebao
#2017.05.16
date=`date +%Y%m%d`
nginxlog="/app/logs/nginx/"
/bin/mv ${nginxlog}www_access.log ${nginxlog}access_${date}back.log
/application/nginx/sbin/nginx -s reload

1.1 脚本详解

# data 时间  nginxlog nginx安装路径(可以根据自己环境修改
# ${} 变量的正规表达式 
# ` `
#"/app/logs/nginx/" 双引号
  括住部分将被视为单一字串 它防止通配符扩展但允许变量扩展
#` date +%Y%m%d ` 倒引号
  括住部分为命令 命令执行
# ${} 变量的正规表达式
# 备份命令其中都是引用变量
/bin/mv ${nginxlog}www_access.log ${nginxlog}access_${date}back.log

#重启nginx

/application/nginx/sbin/nginx -s reload

1.2 写入定时任务

注意:写定时任务前一定要给 写的脚本给执行权限 +x
root@localhost:/home/shell# chmod +x /home/shell/nginxcut.sh 
root@localhost:/home/shell# vim /etc/crontab
#####nginx cut log #####by xuebao 20170516######
58 23 * * * /bin/sh /home/shell/nginxcut.sh >/dev/null 2>&1

脚本详解

#其中 每天晚上23点58 备份
#全路径执行sh 建议可以先测试
1.3 >/dev/null 2>&1
在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者google一下相关的知识
0:表示键盘输入(stdin)
1:表示标准输出(stdout),系统默认是1 
2:表示错误输出(stderr)
command >/dev/null 2>&1 &  == command 1>/dev/null 2>&1 &
1)command:表示shell命令或者为一个可执行程序
2)>:表示重定向到哪里 
3)/dev/null:表示Linux的空设备文件 
4)2:表示标准错误输出
5)&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于1
6)&:表示后台执行,即这条指令执行在后台运行
1>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。

有需要可以联系微信xuebao19930721和加入微信群
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址