mysql 单独备份一个数据库的所有表
2014-02-28 00:00
561 查看
单独备份某个库的所有表 ./script_name.sh dbname
employeestables.sh
#!/bin/bash
#backup employees of titles delete databasesbackup before 20
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/bin
#数据库用户名
user="root"
#数据库密码
passwd="aaa12345"
#备份文件存放目录
backupdir="/data/backup/"
#备份数据库名
dbname="employees"
#备份表名
#table="departments dept_emp dept_manager employees salaries titles"
table=$(mysql -u$user -p$passwd -ss -e "use $dbname;show tables;")
# table=$(mysql -uroot -paaa12345 -ss -e "select table_name from information_schema.tables where table_schema='employees';")
#当前时间
date=$(date +%Y%m%d%H%M%S)
#过期时间
outtime=20
#判断备份目录是否存在
if [ ! -d $backupdir ];then
mkdir -p $backupdir
fi
for tablename in $table
do
#备份出来的文件名
backfile=$tablename'_'$date.sql
#压缩后的文件名
tarfile=$backfile.tar.bz2
mysqldump -u$user -p$passwd $dbname $tablename > $backupdir$backfile
#tar
if [ $backfile ];then
tar -jcvf $tarfile $backupdir$backfile
rm -f $backfile
fi
done
#delete before 20
#find $backupdir -name *.tar.bz2 -mtime +$outtime |xargs rm -rf
find $backupdir -name *.tar.bz2 -mtime +$outtime -exec rm -f {} \;
###自动每天备份
[root@gyf backup]# crontab -e
01 12 * * * sh /data/backup/employeestables.sh
重启生效
[root@gyf backup]# /etc/init.d/crond restart
employeestables.sh
#!/bin/bash
#backup employees of titles delete databasesbackup before 20
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:~/bin
#数据库用户名
user="root"
#数据库密码
passwd="aaa12345"
#备份文件存放目录
backupdir="/data/backup/"
#备份数据库名
dbname="employees"
#备份表名
#table="departments dept_emp dept_manager employees salaries titles"
table=$(mysql -u$user -p$passwd -ss -e "use $dbname;show tables;")
# table=$(mysql -uroot -paaa12345 -ss -e "select table_name from information_schema.tables where table_schema='employees';")
#当前时间
date=$(date +%Y%m%d%H%M%S)
#过期时间
outtime=20
#判断备份目录是否存在
if [ ! -d $backupdir ];then
mkdir -p $backupdir
fi
for tablename in $table
do
#备份出来的文件名
backfile=$tablename'_'$date.sql
#压缩后的文件名
tarfile=$backfile.tar.bz2
mysqldump -u$user -p$passwd $dbname $tablename > $backupdir$backfile
#tar
if [ $backfile ];then
tar -jcvf $tarfile $backupdir$backfile
rm -f $backfile
fi
done
#delete before 20
#find $backupdir -name *.tar.bz2 -mtime +$outtime |xargs rm -rf
find $backupdir -name *.tar.bz2 -mtime +$outtime -exec rm -f {} \;
###自动每天备份
[root@gyf backup]# crontab -e
01 12 * * * sh /data/backup/employeestables.sh
重启生效
[root@gyf backup]# /etc/init.d/crond restart
相关文章推荐
- mysql怎样利用对所有数据库进行备份的备份文件只恢复某一个数据库
- mysql备份了所有数据库 但只想恢复其中一个数据库
- mysql 单独备份一个数据库
- mysql备份所有数据库
- MySQL中 查出一个数据库的所有表名 及 Java 实现
- Mysql 一次性备份导出/导入恢复所有数据库
- 一个备份mysql 数据库的脚本
- mysql同主机下 复制一个数据库所有文件到另一个数据库
- mysql 怎样清空一个数据库中的所有表
- 还原某一个目录下的所有数据库备份文件
- 还原某一个目录下的所有数据库备份文件
- Mysql中返回一个数据库的所有表名,列名数据类型备注
- Mysql 一次性备份导出/导入恢复所有数据库
- Mysql 一次性备份导出/导入恢复所有数据库
- mysql全备脚本,此脚本可以备份多个数据库,单独文件夹
- 使用Mysql命令一次性备份多个数据库(所有数据库)
- 一个MySQL清除数据库所有表数据保留表结构的存储过程
- shell脚本备份mysql里面所有数据库到远程服务器
- 在Mysql中怎样返回一个数据库的所有表名,列名数据类型备注
- mysql如何给一个数据库所有表都增加一个字段?