Nginx日志切割

文章目录

        • 1.一天内压缩日志,存放10天后删除所有日志和压缩文件
        • 2.分析脚本
        • 3.系统日志的种类

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.log yum源的安装软件包的消息记录

查看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

你可能感兴趣的:(Nginx的学习,nginx,运维,服务器)