尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Linux 定时任务实战:Nginx 日志自动备份脚本

发布时间:2026/9/24 18:28:37

资讯中心
01
ARTICLE

Linux 定时任务实战:Nginx 日志自动备份脚本

Linux 定时任务实战:Nginx 日志自动备份脚本
项目背景在运维工作中日志管理是基础但重要的一环长期不清理的日志会占满磁盘导致服务崩溃而手动备份又费时费力这次我用 Shell 脚本 Crontab 实现了 Nginx 日志的自动化备份实现目标每天凌晨 2 点自动打包备份 Nginx 日志备份文件名带日期方便区分自动删除 7 天前的旧备份防止占满磁盘记录备份日志方便后续排查脚本内容#!/bin/bash# Nginx 日志自动备份脚本# 定义变量LOG_DIR/var/log/nginxBACKUP_DIR/root/nginx_backupDATE$(date%Y-%m-%d)BACKUP_FILEnginx_log_${DATE}.tar.gz# 创建备份目录如果不存在mkdir-p$BACKUP_DIR# 打包压缩日志tar-czf$BACKUP_DIR/$BACKUP_FILE$LOG_DIR# 检查打包是否成功if[$?-eq0];thenecho$(date%Y-%m-%d %H:%M:%S)Backup success:$BACKUP_FILE/var/log/nginx_backup.logelseecho$(date%Y-%m-%d %H:%M:%S)Backup failed/var/log/nginx_backup.logfi# 删除 7 天前的旧备份find$BACKUP_DIR-namenginx_log_*.tar.gz-mtime7-deleteecho$(date%Y-%m-%d %H:%M:%S)Clean completed/var/log/nginx_backup.log关键点说明$?获取上一条命令的返回值0 表示成功find ... -mtime 7 -delete查找 7 天前的文件并删除日志格式统一为YYYY-MM-DD HH:MM:SS便于后续分析Crontab 配置赋予脚本执行权限chmodx /root/scripts/backup_nginx_log.sh编辑定时任务crontab-e添加以下内容02* * * /bin/bash /root/scripts/backup_nginx_log.sh参数说明0 2 * * *每天凌晨 2 点 0 分执行必须使用绝对路径因为 cron 环境变量极少确认定时任务已添加crontab-l测试验证为了立即验证脚本是否能被 cron 正常调用临时改为每分钟执行一次crontab-e# 改为 * * * * * /bin/bash /root/scripts/backup_nginx_log.sh等待 2~3 分钟后查看日志cat/var/log/nginx_backup.log日志显示每分钟都有新记录说明 cron 调用成功测试通过后改回正式时间0 2 * * *排查技巧查看 cron 执行记录grepCRON /var/log/cron或使用 journalctljournalctl-ucrond--since5 minutes ago总结这个脚本本身不复杂但第一次让脚本自己跑起来、不用我动手感觉还是挺不一样的后面打算再加点东西比如按周归档、备份到远程机器慢慢把它做成一个真正能用的工具
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。