文件名 mysql_data_backup.sh (需要执行权限)
mysql 数据库表自动备份shell 脚本 (第二版)
调用示例:
代码如下 | 复制代码 |
|
包含功能:
1.生成备份日志
2.自动检测指定数据库中的库列表,单独备份每个库,最后打包为tar文件
3.可指定备份存档文件(.tar) 保留的数目, 按时间正序清理以前的存档
4. 恢复时可以登录 mysql 以后直接用 source xxx.sql 自动删除和创建数据库,并还原数据.
需要修改的变量:
代码如下 | 复制代码 |
db_host //数据库主机 db_user //数据库帐号 db_passwd //数据库密码 backupFileNum //保留的备份存档文件数目,超出该数目自动清理 backupDir //备份文件存放的目录 logfile //日志文件路径 |
----------------------------------------
如何恢复数据:
参见 mysql 数据库表自动备份shell 脚本(第一版)
代码如下 | 复制代码 |
#!/bin/bash # mysq link user config
# backup of directory Do not bring /
begin_time=`date '+%s'`
# check databases if emptyed then exit if [ ! -s /tmp/mysql_backup_check.tmp ];then
# get databases length
if [ ! -d $fileDir ];then if [ ! -d $logfile ];then
do dbName="${databases[$i]}" fileName="${databases[$i]}.sql" filePath="$fileDir/$fileName" echo "Database [$dbName] Backup ..." echo "DROP DATABASE IF EXISTS `$dbName`;" > $filePath echo "CREATE DATABASE `$dbName` CHARACTER SET `utf8`;" >> $filePath echo "use $dbName;" >> $filePath mysqldump -h $db_host -u $db_user -p$db_passwd $dbName >> $filePath done
# tar files # delete source archive end_time=`date '+%s'`
# get tar file list # set array backupFile_length=${#backupFiles[*]} if [ $backupFile_length -gt $backupFileNum ];then |
补充: 数据库,mysql教程
查看更多关于linux unix mysql 数据库自动备份的详细内容...