平时在群晖搭建网站,数据库虽然可以手动导出但是太麻烦
今天我们利用群晖的定时任务来定时备份数据库
备份所有数据库
| 12
 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
 
 | #!/bin/bash
 # 数据库凭证
 USER="用户名"
 PASSWORD="密码"
 HOST="localhost"
 PORT="3306"
 
 # 备份目录
 BACKUP_DIR="/volume1/backup"
 
 # 时间戳命名
 TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
 
 # 获取所有数据库的列表
 DATABASES=$(mysql --user=$USER --password=$PASSWORD --host=$HOST --port=$PORT -e "SHOW DATABASES;" | tr -d "| " | grep -v Database)
 
 # 循环遍历每个数据库并备份
 for DB_NAME in $DATABASES; do
 # 备份数据库
 mysqldump --user=$USER --password=$PASSWORD --host=$HOST --port=$PORT $DB_NAME > $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
 # 压缩备份文件
 gzip $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
 done
 
 # 删除 7 天前的备份文件
 find $BACKUP_DIR/* -mtime +7 -exec rm {} \;
 
 | 
只需要修改你的用户名和密码,如果端口号有修改的话,端口号也需要修改
备份指定数据库
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 | #!/bin/bash
 # 数据库凭证
 USER="用户名"
 PASSWORD="密码"
 HOST="localhost"
 PORT="3306"
 
 # 备份目录
 BACKUP_DIR="/volume1/backup"
 
 # 时间戳命名
 TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
 
 # 需要备份的数据库名
 DB_NAME="要备份的数据库名称"
 
 # 备份数据库
 mysqldump --user=$USER --password=$PASSWORD --host=$HOST --port=$PORT $DB_NAME > $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
 
 # 压缩备份文件
 gzip $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
 
 # 删除 7 天前的备份文件
 find $BACKUP_DIR/* -mtime +7 -exec rm {} \;
 
 | 
然后再任务计划里新增任务计划
用户定义的脚本设置好时间
然后再运行命令里填
脚本不要放在备份目录里