1.创建mysql备份命令
/usr/local/bin/mysqlbackup.sh
1.定时任务生成mysql备份文件(备份waline数据库和umami数据库)
2.复制mysql备份文件到天翼云盘,删除原备份文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| #!/bin/bash
MYSQL_CONTAINER_NAME="mysql" BACKUP_DIR="/var/mysql/data/backup" CLOUD_BACKUP_DIR="/mnt/cloud/backup/mysql" DATE=$(date +"%Y%m%d_%H%M%S") MYSQL_ROOT_PASSWORD="密码"
mkdir -p "$BACKUP_DIR"
if [ ! -d "$BACKUP_DIR" ]; then echo "Error: Could not create or access backup directory: $BACKUP_DIR" exit 1 fi
rclone mkdir "$CLOUD_BACKUP_DIR"
docker exec -i $MYSQL_CONTAINER_NAME sh -c 'exec mysqldump --databases waline umami -uroot -p"$MYSQL_ROOT_PASSWORD"' > "$BACKUP_DIR/mysql_backup_$DATE.sql"
if [ $? -eq 0 ]; then echo "Backup succeeded. Starting to copy to cloud..." rclone copy "$BACKUP_DIR/mysql_backup_$DATE.sql" "$CLOUD_BACKUP_DIR/" if [ $? -eq 0 ]; then echo "Copy to cloud succeeded. Deleting local backup file..." rm "$BACKUP_DIR/mysql_backup_$DATE.sql" echo "Local backup file deleted." else echo "Failed to copy to cloud. Local backup file kept for safety." fi else echo "Backup failed." fi echo "Backup process finished at $(date)"
|
2.编辑 root 用户的 crontab 文件
使用 crontab -e 命令编辑 root 用户的 crontab 文件:
3.添加定时任务
添加一行来定义备份任务的时间间隔。例如,每周日凌晨 1 点:
1
| 0 1 * * 0 /usr/local/bin/mysqlbackup.sh >> /var/log/mysqlbackup.log 2>&1
|
4.手动执行一遍
1
| /usr/local/bin/mysqlbackup.sh
|
5. 查看执行日志(定时任务的)
1
| tail -2000f /var/log/mysqlbackup.log
|
6.效果图
