1、自动备份前一天的日志:
1)、日志切割
/usr/local/nginx/logs/
access.log 存放成功访问nginx服务器的日志信息
error.log 存放访问nginx服务器失败的日志信息
nginx.pid nginx的主进程的进程号
mv access.log \`date +%F -d -1d`_access.log 本分前一天的日志
/usr/local/nginx/sbin/nginx -s reopen 重新生成一个日志文件存放今天的日志
2)、编写脚本
vim /usr/local/nginx/logs/logsbackup.sh
***************************************************************************
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/oldlogs ##定义切割日志后存放的路径
CUR_LOG_PATH=/usr/local/nginx/logs ##定义nginx日志存放的路径
YESTERDAY=$(date +%F -d -1day) ##定义日期为昨天
mv $CUR_LOG_PATH/access.log $LOG_PATH/${YESTERDAY}_access.log ##将昨天的access日志文件移动到切割目录,并且重命名
mv $CUR_LOG_PATH/error.log $LOG_PATH/${YESTERDAY}_error.log ##将昨天的error日志文件移动到切割目录,并且重命名
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) ##生成新的日志
#/usr/local/nginx/sbin/nginx -s reopen
***************************************************************************
chmod +x /usr/local/nginx/logs/logsbackup.sh //给脚本可执行权限
(3)定时执行
crontab -e //编辑定时任务
***************************************************************************
0 0 * * * /bin/bash /usr/local/nginx/logs/logsbackup.sh
#每天的00:00进行日志切割备份
***************************************************************************
crontab -l //查看任务
2、systemctl方式管理
(1)、编写配置文件
cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/nginx.service
vim /etc/systemd/system/nginx.service
***************************************************************************
[Unit]
Description=The Nginx HTTP Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/nginx
ExecReload=/usr/local/nginx/nginx -s reload
ExecStop=/usr/local/nginx/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
***************************************************************************
(2)、如果服务开启人使用原来的方式关闭
nginx -s stop
(3)、使用systemd方式管理nginx
systemctl start nginx //开启
systemctl stop nginx //关闭
systemctl reload nginx //刷新(restart)
systemctl status nginx //查看状态
本文介绍了一种Nginx日志自动备份的方法,通过编写Shell脚本实现日志的切割和备份,同时利用crontab定时执行,确保日志管理的自动化。此外,还介绍了如何使用systemctl服务管理Nginx,包括启动、停止、重启等操作,提升服务器运维效率。
534

被折叠的 条评论
为什么被折叠?



