Nginx日志切割

1.一天内压缩日志,存放10天后删除所有日志和压缩文件
vi cutting_nginx_log.sh
#!/bin/bash
cd /usr/local/nginx/logs
if [ ! -d nginx_log ];then
   mkdir nginx_log
fi
mv access.log nginx_log/access_$(date '+%F~%H:%M').log
mv error.log nginx_log/error_$(date '+%F~%H:%M').log
/usr/local/nginx/sbin/nginx -s reload
tar -zcvf $(date '+%F~%H:%M')_log.tar.gz   nginx_log  --force-loca
rm -rf nginx_log/*
cat > /var/spool/cron/root << eof
0 0 * * * sh /root/cutting_nginx_log.sh > /dev/null 2>&1
eof
find -type f -mtime +10 |grep -v nginx.pid| xargs -L 1 rm -rf

2.分析脚本

判断的nginx_log目录是否存在,不存在nginx_log目录就创建

if 的参数if 的参数说明
[ -d DIR ]如果目录存在且是一个目录则为真(true),否则为false(假)
[ -e FILE ]如果存在则为真(true),否则为false(假)
[ -f FILE ]如果存在普通的文件且是一个普通的文件则为真(true),否则为false(假)
[ ! ]非运算,表达式为 true 则返回 false,否则返回 true, [ ! false ] 返回 true
[ -o ]或运算,有一个表达式为 true 则返回 true
[ -a ]与运算,两个表达式都为 true 才返回 true

时间的格式化

date +%F~%T
2020-07-10~14:49:47

date +%F~%H:%M:%S
2020-07-10~14:50:51

date +%Y-%m-%d~%H:%M:%S
2020-07-10~14:52:09

定时任务计划

#编辑crond服务的定时任务
crontab -e

#删除crond服务的定时任务
crontab -r

#查看crond服务的定时任务
crontab -l
0 0 * * * sh /root/cutting_nginx_log.sh > /dev/null 2>&1

#查看定时任务的说明
cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

/var/spool/cron/ 和 /etc/crontab 与 crontab的区别

名称说明
/var/spool/cron/指定用户,但是所属用户和所属组的权限都为root
/etc/crontab 与 crontab指定用户,所属用户和所属组的权限都为指定的用户

3.系统日志的种类
名称说明
/var/log/message大多数系统日志消息记录在此处。有也例外的:如不身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure安全和身份验证相关的消息和登录失败的日志文件;ssh进程连接产生的日志
/var/log/maillog邮件服务器相关的消息日志文件
/var/log/cron定时任务计划相关的日志文件
/var/log/boot.log系统引导启动相关的消息记录
/var/log/dmesg系统启动相关的消息记录
/var/log/wtmp记录登录者讯录,二进制文件,须用last来读取内容 who -u /var/log/wtmp 查看信息
/var/log/yum.logyum源的安装软件包的消息记录

查看ssh登录的消息记录

grep  ssh2 /var/log/secure| awk '{print "IP:" $11, "端口:"$13,"协议:"$14}'
IP:172.25.0.1 端口:55799 协议:ssh2
IP:172.25.0.1 端口:54590 协议:ssh2
IP:172.25.0.1 端口:55997 协议:ssh2
IP:172.25.0.20 端口:35550 协议:ssh2
IP:172.25.0.20 端口:35550 协议:ssh2

#登录虚拟终端(XShell)的次数
who /var/log/wtmp |grep pts | wc -l
94

4.平滑重启nginx
#平滑重启nginx
kill -HUP  `cat /usr/local/nginx/logs/nginx.pid`
vi cutting_nginx_log.sh
#!/bin/bash
cd /usr/local/nginx/logs
if [ ! -d nginx_log ];then
   mkdir nginx_log
fi
mv access.log nginx_log/access_$(date '+%F~%H:%M').log
mv error.log nginx_log/error_$(date '+%F~%H:%M').log
#/usr/local/nginx/sbin/nginx -s reload
kill -HUP  `cat /usr/local/nginx/logs/nginx.pid`
tar -zcvf $(date '+%F~%H:%M')_log.tar.gz   nginx_log  --force-loca
rm -rf nginx_log/*
cat > /var/spool/cron/root << eof
0 0 * * * sh /root/cutting_nginx_log.sh > /dev/null 2>&1
eof
find -type f -mtime +10 |grep -v nginx.pid| xargs -L 1 rm -rf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值