一、前言

数据备份是运维底线!企业必须对网站数据、数据库、配置文件做定时备份。本脚本实现:打包备份、时间命名、自动压缩、自动清理过期备份、完整日志,配合 crontab 实现无人值守定时备份。


二、企业级自动备份脚本(完整版)

#!/bin/bash
# 服务器数据定时备份脚本
# 备份源目录
BACKUP_SRC="/usr/share/nginx/html /etc/nginx"
# 备份存放目录
BACKUP_DIR="/data/backup"
# 备份时间后缀
DATE=$(date +%Y%m%d_%H%M%S)
# 备份文件名
BACKUP_FILE="backup_${DATE}.tar.gz"
# 日志路径
LOG_FILE="/var/log/backup.log"
# 过期保留天数(7天)
SAVE_DAY=7

# 日志函数
log(){
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] $1" | tee -a $LOG_FILE
}

# 创建备份目录
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR

log "===== 开始执行备份 ====="

# 打包压缩备份
tar -zcvf $BACKUP_DIR/$BACKUP_FILE $BACKUP_SRC &>/dev/null
if [ $? -eq 0 ];then
    log "备份成功:$BACKUP_DIR/$BACKUP_FILE"
else
    log "备份失败!"
    exit 1
fi

# 自动清理7天前过期备份
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +$SAVE_DAY -delete
log "已清理${SAVE_DAY}天前过期备份文件"

log "===== 备份任务结束 ====="

三、脚本亮点

  • 支持多目录同时备份

  • 时间戳命名,永不覆盖

  • 自动清理过期备份,不占磁盘

  • 备份失败有日志告警


四、配置 Crontab 定时任务

设置每天凌晨2点自动执行备份

crontab -e
# 写入内容
0 2 * * * /bin/bash /data/backup.sh

五、备份恢复方式

tar -xvf 备份文件 -C /恢复路径
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐