Linux 一键备份系统脚本:再也不怕误删文件

是否遇到过误删重大文件、服务器日志被清空、系统崩溃无备份的情况?

今天这篇文章带你动手编写一个 Linux 一键备份系统脚本,让你的数据随时可恢复,彻底告别“删库跑路”焦虑!

Linux 一键备份系统脚本:再也不怕误删文件

一、脚本功能说明

本脚本的目标是让任何人都能一键完成备份:

✅ 自动备份指定目录(如 /etc、/home、/var/www)

✅ 自动生成压缩包并加时间戳

✅ 自动清理 7 天前的旧备份

✅ 支持日志输出与错误提示

✅ 可设置为每日定时执行

二、准备工作

在 Linux 服务器上,确保具备以下环境:

# 查看系统版本

cat /etc/os-release

# 确认 gzip 和 cron 已安装

sudo apt install gzip cron -y # Debian / Ubuntu

sudo yum install gzip cronie -y # CentOS / Rocky / AlmaLinux

三、编写备份脚本

使用 vim 创建脚本文件:

sudo vim /usr/local/bin/auto_backup.sh

在文件中粘贴以下内容

#!/bin/bash

# ===============================

# Linux 一键备份脚本 by jack zhang

# ===============================

# === 可自定义配置 ===

BACKUP_DIR=”/backup” # 备份存放目录

SOURCE_DIRS=”/etc /home /var/www” # 要备份的目录

LOG_FILE=”/var/log/auto_backup.log” # 日志路径

RETENTION_DAYS=7 # 保留天数

# === 初始化 ===

DATE=$(date +”%Y-%m-%d_%H-%M-%S”)

ARCHIVE_NAME=”backup_${DATE}.tar.gz”

TEMP_DIR=”${BACKUP_DIR}/temp”

mkdir -p “$BACKUP_DIR” “$TEMP_DIR”

# === 记录开始 ===

echo “[$(date '+%F %T')] 开始执行系统备份…” | tee -a “$LOG_FILE”

# === 打包压缩 ===

tar -czf “${BACKUP_DIR}/${ARCHIVE_NAME}” $SOURCE_DIRS 2>>”$LOG_FILE”

if [ $? -eq 0 ]; then

echo “[$(date '+%F %T')] ✅ 备份成功:${BACKUP_DIR}/${ARCHIVE_NAME}” | tee -a “$LOG_FILE”

else

echo “[$(date '+%F %T')] ❌ 备份失败,请检查日志” | tee -a “$LOG_FILE”

exit 1

fi

# === 删除过期备份 ===

find “$BACKUP_DIR” -type f -mtime +$RETENTION_DAYS -name “*.tar.gz” -exec rm -f {} ;

echo “[$(date '+%F %T')] 已清理 $RETENTION_DAYS 天前的旧备份” | tee -a “$LOG_FILE”

# === 完成 ===

echo “[$(date '+%F %T')] 备份任务结束” | tee -a “$LOG_FILE”

echo “——————————————–” >> “$LOG_FILE”

保存退出后执行以下命令赋予执行权限:

sudo chmod +x /usr/local/bin/auto_backup.sh

四、测试运行

手动执行一次:

sudo /usr/local/bin/auto_backup.sh

如果脚本正常工作,你将在 /backup 目录下看到:

backup_2025-10-16_13-30-22.tar.gz

并且日志会记录在 /var/log/auto_backup.log。

五、设置自动定时备份(cron)

打开 crontab 定时任务配置:

sudo crontab -e

在文件底部添加以下行(每天凌晨 2 点自动备份):

0 2 * * * /usr/local/bin/auto_backup.sh

保存后,cron 会自动按计划执行。

六、恢复备份示例

如果需要恢复 /etc 配置文件,可执行:

sudo tar -xzf /backup/backup_2025-10-16_13-30-22.tar.gz -C /

即可恢复原始文件路径。

七、进阶优化提议

功能

提议实现方式

增量备份

使用 rsync 或 tar –listed-incremental

远程备份

使用 scp 或 rclone 上传到云端

邮件通知

配合 mailx 实现成功/失败通知

界面可视化

结合 Web 界面(如 Cockpit)查看备份历史

总结

这个一键备份脚本虽然简单,但却足以应对大多数个人与企业的基础备份需求。

运维的世界里,最怕的不是 bug,而是 没有备份的 bug。

动手写一个属于你自己的备份脚本吧,让系统安全更上一层楼!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
木南的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容