用shell写一个MySQL备份数据库每一张表的,并且日志打印出错误备份时间的脚本
时间: 2023-03-27 17:03:31 浏览: 104
可以使用以下脚本备份MySQL数据库每一张表,并在备份出错时打印错误信息和备份时间的日志:
```
#!/bin/bash
# MySQL数据库信息
DB_USER="username"
DB_PASS="password"
DB_NAME="database_name"
# 备份目录
BACKUP_DIR="/path/to/backup/directory"
# 获取当前时间
DATE=$(date +%Y-%m-%d_%H-%M-%S)
# 遍历数据库中的每一张表
for TABLE in $(mysql -u $DB_USER -p$DB_PASS -N -B -e "SHOW TABLES FROM $DB_NAME")
do
# 备份表结构
mysqldump -u $DB_USER -p$DB_PASS --no-data $DB_NAME $TABLE > $BACKUP_DIR/$TABLE-$DATE.sql
# 备份表数据
mysqldump -u $DB_USER -p$DB_PASS --skip-lock-tables $DB_NAME $TABLE >> $BACKUP_DIR/$TABLE-$DATE.sql
# 检查备份是否成功
if [ $? -eq ]
then
echo "备份 $TABLE 表成功"
else
echo "备份 $TABLE 表失败" >&2
echo "$(date +%Y-%m-%d_%H-%M-%S) 备份 $TABLE 表失败" >> $BACKUP_DIR/backup.log
fi
done
```
注意,需要将脚本中的 `username`、`password`、`database_name` 和 `path/to/backup/directory` 替换为实际的数据库用户名、密码、数据库名和备份目录路径。
阅读全文