在日常的系统管理和运维工作中,数据备份是至关重要的一环。为了避免因意外导致数据丢失,我们常常需要定期对重要文件或目录进行备份。而手动备份不仅繁琐,还容易遗漏。这时,利用Linux Shell脚本编写一个循环备份程序就显得非常实用。
本文将从零开始,教你如何编写一个简单但功能完整的 Shell 脚本,实现自动备份指定目录,并保留最近若干份备份,其余旧备份自动删除,真正做到“循环”管理。
确保你的 Linux 系统已安装基本的 Bash 环境(大多数发行版默认已安装)。你还需要有写入目标备份目录的权限。
我们的脚本将完成以下任务:
/home/user/documents)/backup)backup_20240615.tar.gz)使用你喜欢的文本编辑器(如 nano 或 vim)创建一个名为 rotate_backup.sh 的脚本文件:
#!/bin/bash# 配置变量SOURCE_DIR="/home/yourname/documents" # 要备份的源目录BACKUP_DIR="/backup" # 备份存放目录MAX_BACKUPS=5 # 最多保留的备份数量DATE=$(date +%Y%m%d) # 当前日期,格式:20240615BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"# 创建备份目录(如果不存在)mkdir -p "$BACKUP_DIR"# 执行备份:打包并压缩tar -czf "$BACKUP_FILE" -C / "$SOURCE_DIR"if [ $? -eq 0 ]; then echo "[INFO] 备份成功:$BACKUP_FILE"else echo "[ERROR] 备份失败!" exit 1fi# 清理旧备份:只保留最新的 MAX_BACKUPS 个文件ls -t "$BACKUP_DIR"/backup_*.tar.gz | tail -n +$((MAX_BACKUPS + 1)) | xargs --no-run-if-empty rm -fecho "[INFO] 旧备份清理完成,当前保留 $MAX_BACKUPS 份备份。"
保存脚本后,为其添加可执行权限:
chmod +x rotate_backup.sh
然后手动运行一次测试:
./rotate_backup.sh
检查 /backup 目录是否生成了形如 backup_20240615.tar.gz 的文件。
为了让备份真正“自动”运行,我们可以使用 Linux 的 cron 定时任务。例如,每天凌晨 2 点执行一次备份:
crontab -e
在打开的编辑器中添加一行:
0 2 * * * /path/to/rotate_backup.sh >> /var/log/backup.log 2>&1
这行命令表示:每天 2:00 执行脚本,并将输出记录到日志文件中,方便日后排查问题。
SOURCE_DIR 和 BACKUP_DIR 路径。/var/log/backup.log),确认备份是否正常。gpg)。通过这个简单的 Shell 脚本,你已经掌握了如何实现 Linux Shell循环备份的核心方法。无论是个人电脑还是服务器环境,这种自动化备份策略都能极大提升数据安全性。记住:备份不是可选项,而是必选项!
希望这篇教程对你有帮助。如果你是初学者,不妨动手试试——实践是最好的学习方式!
关键词:Linux Shell脚本、自动备份、循环备份、定时任务
本文由主机测评网于2025-11-26发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511769.html