前言:在云服务器的不稳定情况下,备份是确保数据安全的关键。为了避免突发崩溃导致数据丢失,建立备份习惯至关重要。下面是如何设置备份网站目录和数据库的步骤:

  1. 备份网站目录

通过定期备份网站目录,你可以在服务器崩溃时保留网站数据。首先,进入宝塔的计划任务,选择shell脚本,并创建一个名为“minio备份网站”的任务。设定定时任务每天0点执行一次。

MINIO_ACCESS_KEY="" # MinIO的访问密钥
MINIO_SECRET_KEY="" # MinIO的私密密钥
MINIO_ENDPOINT=""   # MinIO的端点
MINIO_BUCKET="web" # MinIO的储存桶名

SOURCE_DIRECTORY="/www/wwwroot/backup_directory"  # 网站备份目录

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

BACKUP_FILE="/tmp/backup_web_$TIMESTAMP.tar.gz"

echo "正在创建 $SOURCE_DIRECTORY 的tar归档文件..."

tar -czf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIRECTORY")" "$(basename "$SOURCE_DIRECTORY")"

echo "正在上传备份文件至 MinIO 存储桶..."

mc alias set minio "$MINIO_ENDPOINT" "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --api S3v4

mc cp "$BACKUP_FILE" "minio/$MINIO_BUCKET/backup_website_web/" 

echo "清理中..."

rm "$BACKUP_FILE" 

echo "备份成功。"

确保修改以上脚本中的参数以适应你的环境,如MinIO的访问密钥、私密密钥、端点和储存桶名等。

  1. 备份数据库

宝塔自带了数据库的备份功能,你可以设置每天0点定时备份数据库,并保留一份数据。此外,然后通过以下脚本创建一个上传数据库备份至MinIO的任务,定时每天2点执行一次:

MINIO_ACCESS_KEY="" # MinIO的访问密钥
MINIO_SECRET_KEY="" # MinIO的私密密钥
MINIO_ENDPOINT=""   # MinIO的端点
MINIO_BUCKET="web" # MinIO的储存桶名

SOURCE_DIRECTORY="/www/backup/database/mysql/crontab_backup/database_name"  

TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")

BACKUP_FILE="/tmp/backup_sql_$TIMESTAMP.tar.gz"

echo "Creating tar archive of $SOURCE_DIRECTORY..."

tar -czf "$BACKUP_FILE" -C "$(dirname "$SOURCE_DIRECTORY")" "$(basename "$SOURCE_DIRECTORY")"

echo "Uploading backup file to MinIO bucket..."

mc alias set minio "$MINIO_ENDPOINT" "$MINIO_ACCESS_KEY" "$MINIO_SECRET_KEY" --api S3v4

mc cp "$BACKUP_FILE" "minio/$MINIO_BUCKET/backup_database_sql/"

echo "Cleaning up..."

rm "$BACKUP_FILE" 

echo "Backup completed successfully."
  1. 安装MinIO mc

为了使用MinIO mc工具,你需要先安装它。以下是安装MinIO mc的步骤:

# 下载mc
wget https://dl.minio.org.cn/client/mc/release/linux-amd64/mc
# 赋予执行权限
chmod +x ./mc
# 移动到全局
cp ./mc  /usr/local/bin/

安装完成后,输入 mc -help 来验证是否安装成功。

以上脚本针对单个网站或数据库,如果需要备份全部网站或数据库,只需调整目录即可。如果需要按需备份,需要自行修改脚本。

最后修改:2024 年 06 月 05 日
如果觉得我的文章对你有用,请随意赞赏