linux 定时mysqldump备份怎么写脚本
时间: 2023-07-31 18:09:34 浏览: 165
可以使用 shell 脚本来定时执行 mysqldump 备份,具体的步骤如下:
1. 创建一个备份目录,例如 /home/backup。
2. 创建一个 shell 脚本,例如 backup.sh,将以下代码复制到脚本中:
```
#!/bin/bash
# 定义备份目录
backup_dir="/home/backup"
# 定义备份文件名
backup_name="backup_$(date +%Y%m%d%H%M%S).sql"
# 定义 MySQL 用户名和密码
mysql_user="root"
mysql_password="password"
# 定义要备份的数据库名
database_name="database_name"
# 执行备份命令
mysqldump -u${mysql_user} -p${mysql_password} ${database_name} > ${backup_dir}/${backup_name}
```
3. 修改脚本的执行权限,执行命令如下:
```
chmod +x backup.sh
```
4. 测试脚本是否能够执行成功,执行命令如下:
```
./backup.sh
```
5. 使用 crontab 命令来定时执行备份脚本,执行命令如下:
```
crontab -e
```
在打开的文件中添加以下内容,表示每天凌晨 3 点执行备份脚本:
```
0 3 * * * /path/to/backup.sh
```
6. 保存并退出文件,定时备份脚本就设置完成了。
相关问题
mysqldump备份数据库的脚本
### 编写使用 `mysqldump` 备份 MySQL 数据库的 Shell 脚本
#### 创建备份脚本
为了创建一个可靠的 `mysqldump` 备份脚本,可以按照如下方式构建:
```bash
#!/bin/bash
# 定义变量用于存储数据库连接参数以及备份路径
DB_USER="root"
DB_PASS="your_password_here"
BACKUP_DIR="/data/mysqlbackup"
DATE=$(date +%F)
mkdir -p $BACKUP_DIR/$DATE
databases=`mysql --user=$DB_USER --password=$DB_PASS -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]]; then
echo "Dumping database: $db"
mysqldump --force --opt --user=$DB_USER --password=$DB_PASS --databases $db > $BACKUP_DIR/$DATE/${db}_$(date +%F_%T).sql
fi
done
```
这段代码会遍历所有的数据库并排除掉一些系统自带的数据表(如 information_schema 和 performance_schema),然后逐一对剩余的每一个数据库执行一次完整的导出操作[^1]。
#### 设置定时任务
为了让这个脚本能定期运行,在 Linux 中可以通过 crontab 来设置计划任务。编辑用户的 cron 表格 (`crontab -e`) 并添加一行以每天凌晨两点钟触发上述脚本为例:
```cron
0 2 * * * /path/to/your_script.sh >> /var/log/mysqldump.log 2>&1
```
这行配置意味着每晚两点整将会调用指定位置下的 shell 文件来进行数据库备份工作,并把日志记录到 `/var/log/mysqldump.log` 文件里[^2]。
linux 怎么写mysqldump脚本
可以使用 shell 脚本来编写 `mysqldump` 的备份脚本,以下是一个简单的备份脚本示例:
```
#!/bin/bash
# 定义变量
DB_HOST=localhost
DB_USER=root
DB_PASS=password
DB_NAME=mydatabase
BACKUP_DIR=/path/to/backup
DATE=$(date +%Y-%m-%d-%H-%M-%S)
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 导出整个数据库
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DATE/$DB_NAME.sql
# 压缩备份文件
tar -czvf $BACKUP_DIR/$DATE.tar.gz $BACKUP_DIR/$DATE
# 删除临时目录
rm -rf $BACKUP_DIR/$DATE
```
脚本中的变量需要根据实际情况进行修改,其中:
- `DB_HOST`:数据库主机名或 IP 地址。
- `DB_USER`:数据库用户名。
- `DB_PASS`:数据库密码。
- `DB_NAME`:要备份的数据库名。
- `BACKUP_DIR`:备份文件存储的目录。
- `DATE`:当前日期时间。
脚本的执行过程如下:
1. 创建以当前日期时间为名字的临时目录。
2. 使用 `mysqldump` 导出整个数据库,并将导出的 SQL 文件保存到临时目录中。
3. 使用 `tar` 命令将临时目录打包成压缩文件。
4. 删除临时目录。
可以将该脚本设置为定时任务,实现自动备份数据库。
阅读全文
相关推荐













