前言:在云服务器的不稳定情况下,备份是确保数据安全的关键。为了避免突发崩溃导致数据丢失,建立备份习惯至关重要。下面是如何设置备份网站目录和数据库的步骤:
- 备份网站目录
通过定期备份网站目录,你可以在服务器崩溃时保留网站数据。首先,进入宝塔的计划任务,选择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的访问密钥、私密密钥、端点和储存桶名等。
- 备份数据库
宝塔自带了数据库的备份功能,你可以设置每天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."
- 安装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 来验证是否安装成功。
以上脚本针对单个网站或数据库,如果需要备份全部网站或数据库,只需调整目录即可。如果需要按需备份,需要自行修改脚本。