- 论坛徽章:
- 0
|
原帖由 智勇双全 于 2008-11-26 15:21 发表 ![]()
测试能正常运行,并寻求异常处理方案。如在备份过程中出现异常如何处理。
#!/bin/bash
#定义数据库连接字段
db_user="root"
db_passwd="**********"
db_host="localhost"
#定义备份目录,备份时间及用 ... - #!/bin/bash
- #定义数据库连接字段
- db_user="root"
- db_passwd="*********"
- db_host="localhost"
- #定义备份目录,备份时间及用到的命令
- backup_dir="/vhost/backup"
- date=`date +%Y-%m-%d`
- del_date=`date +%Y\-%m\-%d -d'-7 day'` #该命令是GUN date,可在RedHat系统下使用
- #date=`date -d yesterday +%Y%m%d|cut -c3-8`
- GZIP='/bin/gzip'
- TAR='/bin/tar'
- #mysqldump='mysqldump'
- mysqldump="$(which mysqldump)"
- myisamchk="/usr/local/mysql/bin/myisamchk"
- #删除旧的备份数据
- #find $backup_dir/mysql_* -name "*.gz" -type f -ctime +7 -exec rm {} \;
- rm -fr $backup_dir/mysql_$del_date
- #检测备份目录是否存在,不存在则建立目录
- test ! -d "$backup_dir/mysql_$date" && mkdir "$backup_dir/mysql_$date/"
- #列出所有数据库
- all_db="$(mysql -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
- #all_db=`cat list.txt`
- #循环备份数据库
- for db in $all_db
- do
- # $imysqldump -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/mysql_$date/$db.gz"
- $myisamchk -s /usr/local/mysql/var/$db/*.MYI
- $mysqldump -u $db_user -h $db_host -p$db_passwd $db > $backup_dir/mysql_$date/$db.sql
- if [ $? == 0 ];
- then
- $TAR -czf $backup_dir/mysql_$date/$db.tgz $backup_dir/mysql_$date/$db.sql
- rm -f $backup_dir/mysql_$date/$db.sql
- else
- $TAR -czf $backup_dir/mysql_$date/$db.tgz /usr/local/mysql/var/$db
- rm -f $backup_dir/mysql_$date/$db.sql
- fi
- done
复制代码
加入检查表,如果dump有误就直接备份数据文件。 |
|