网站数据自动备份:一个脚本+一个计划任务搞定

来源:互联网 时间:2026-08-25

网站备份是出事之后最后悔没做的东西。很多人服务器被黑后才发现数据库没备份,几年的内容一夜归零。其实一个shell脚本加一个定时任务就能解决。

下面这个脚本同时备份MySQL数据库和网站源码,按日期命名,保留最近7天。Linux服务器直接放到/root/backup.sh,Windows可以改成PowerShell版本,或者把Linux脚本放在宝塔面板的Shell终端里执行。

#!/bin/bash
SITE_DIR="/www/wwwroot/yoursite"
DB_NAME="yourdb"
DB_USER="root"
DB_PASS="yourpass"
BACKUP_DIR="/backup/$(date +%Y%m%d)"

mkdir -p $BACKUP_DIR

# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS --single-transaction $DB_NAME | gzip > $BACKUP_DIR/db.sql.gz

# 备份网站文件
tar -czf $BACKUP_DIR/files.tar.gz -C $(dirname $SITE_DIR) $(basename $SITE_DIR)

# 删除7天前的备份
find /backup -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;

脚本写好之后加一条crontab,每天凌晨3点执行。备份文件建议再同步一份到对象存储,比如阿里云OSS或腾讯云COS,做到异地容灾。

# crontab -e

0 3 * * * /bin/bash /root/backup.sh >> /var/log/backup.log 2>&1

数据来源:MySQL Reference Manual 8.0(mysqldump),Linux crontab官方文档

相关文章

标签:

A5创业网 版权所有

返回顶部