商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > nginx日志备份:如何定期备份日志文件

nginx日志备份:如何定期备份日志文件

  发布于2026-07-17 阅读(0)

扫一扫,手机访问

说到Nginx日志备份,这事儿看着简单,但真踩过坑的人都知道——日志文件越滚越大,磁盘空间说爆就爆,等到排查问题时发现日志已经被覆盖,那才叫一个欲哭无泪。其实,用cron配合一个简单的shell脚本就能搞定定期备份,自动、省心、还能保留历史记录。下面就把这套标准化流程拆开来讲,每一步都配了代码,直接复制改路径就能用。

nginx日志备份:如何定期备份日志文件

  1. 先写一个备份脚本,比如命名为 backup_nginx_logs.sh。脚本的逻辑很直白:指定Nginx日志目录和备份目标目录,用当前日期给备份文件命名,然后打包压缩,顺便把30天前的旧备份清掉。具体内容如下:

    #!/bin/bash
    # 设置日志文件和备份目录
    nginx_logs_path="/var/log/nginx"
    backup_dir="/path/to/your/backup/directory"
    
    # 获取当前日期
    current_date=$(date +"%Y-%m-%d")
    
    # 创建备份目录(如果不存在)
    mkdir -p "$backup_dir"
    
    # 备份Nginx日志文件
    tar -czf "$backup_dir/nginx_logs_$current_date.tar.gz" -C "$nginx_logs_path" .
    
    # 删除30天前的备份文件
    find "$backup_dir" -type f -name "*.tar.gz" -mtime +30 -exec rm {} \;

    注意:把nginx_logs_pathbackup_dir换成你服务器上实际的路径。

  2. 脚本写好后,给它加上可执行权限,否则cron跑不起来:

    chmod +x backup_nginx_logs.sh
  3. 接下来配置cron任务。编辑当前用户的crontab文件:

    crontab -e
  4. 在编辑器里加一行,定义执行时间。比如希望每天凌晨1点自动备份,就写:

    0 1 * * * /path/to/your/backup_nginx_logs.sh

    记得把路径换成脚本的实际位置。

  5. 保存退出,cron就会按你设定的时间表自动运行脚本。如果想调整备份频率(比如每小时、每周),改cron表达式就行。保留天数也可以自己控制——上面脚本里-mtime +30表示删除30天前的文件,改成+7就是保留一周,按需修改。

这套方法的好处是零依赖、纯系统工具,几乎任何Linux发行版都能直接跑。唯一需要留意的就是备份目录的磁盘空间,别让备份文件本身把磁盘撑爆——记得定期检查或者设置监控告警。

本文转载于:https://www.yisu.com/ask/28625005.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注