<p>Linux自动备份脚本核心是tar打包压缩加cron定时执行,需用date生成时间戳、绝对路径调用命令、if判断成功与否、find清理旧备份,并设置chmod权限和crontab任务(0 2 * /bin/bash /home/user/backup.sh)。</p>

Linux 脚本实现自动备份文件并压缩,核心是用 tar 打包 + gzip/bzip2/xz 压缩 + cron 定时执行。关键在于路径准确、时间命名清晰、错误有反馈、旧备份能清理。
写一个带时间戳的备份脚本
先创建脚本(比如 /home/user/backup.sh),内容如下:
- 用
date +%Y%m%d_%H%M生成唯一时间戳,避免覆盖 - 指定源目录(如
/var/www/html)和备份目标位置(如/backup) - 用
tar -czf一次性打包压缩(-c创建,-zgzip,-f指定文件名) - 加
if [ $? -eq 0 ]判断是否成功,失败时发提示(比如写日志或 echo)
示例命令:tar -czf /backup/html_backup_$(date +\%Y%m%d_\%H%M).tar.gz /var/www/html
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
自动清理旧备份
备份多了会占空间,脚本里加一句清理逻辑:
- 用
find /backup -name "html_backup_*.tar.gz" -mtime +7 -delete删除 7 天前的备份 - 也可以先
ls -t排序再用tail -n +6留最新 5 个,再删其余(更稳妥) - 建议先测试删除命令加
-print,确认匹配无误再加-delete
用 cron 设置定时任务
让脚本每天凌晨 2 点运行:
- 运行
crontab -e编辑当前用户定时任务 - 添加一行:
0 2 * * * /bin/bash /home/user/backup.sh >/dev/null 2>&1 -
/bin/bash显式调用解释器,避免环境变量问题;重定向输出可省略或记到日志(如>/var/log/backup.log 2>&1)
权限和测试不能跳过
脚本生效前必须做两件事:
- 给脚本执行权限:
chmod +x /home/user/backup.sh - 手动运行一次:
/home/user/backup.sh,检查生成文件、大小、解压是否正常、日志有无报错 - 注意:cron 默认 PATH 较窄,脚本中用绝对路径调用 tar、find 等命令更保险(如
/bin/tar)

















