# !/ bin / sh export d = `date +% Y % m % d % H % M % S` # 定义时间输出格式 mkdir - p / data / dbbak / baktables / $d #按照定义好的时间格式生成备份目录 for i in `echo " show tables " | mysql - u bak - ppassword db | grep - v Tables`; #登陆数据库库选择db数据库,显示数据库表格。 do echo $i; mysqldump -- add - drop - table -- allow - keywords - q - a - c - u bak - ppasswod mbook_hd $i > backup / $d / $i.sql # 显示show table 结果按其对应参数进行备份--add -drop - table 选项是防止导入时出错。 done tar czf backup / $d.tar.gz backup / $d / #把backup下的文件分别 打包到 / backup/$d目录下 rm - rf backup / $d / # 删除backup下的的已打包的文件夹 lftp - e " cd /dbbak/; mput -c $d.tar.gz; quit " - u bak,password sftp: // 192.168.0.138
#用lftp把 /dbback下的打包文件 传到192.168.0.138 sftp服务器上。-e 在选择上执行命令。
--------------------------------------
windows下批处理版本
@echo off set remote_host=192.168.1.7 set remote_db=dbname set romote_user=username set remote_passwd=passwd set local_db=dbname set local_user=username set local_passwd=passwd echo '备份远程数据库数据' mysqldump -h%remote_host% -u%romote_user% -p%remote_passwd% --skip-lock-tables --default-character-set=utf8 %remote_db%> pm.sql echo '恢复本地数据库数据' mysql -u%local_user% -p%local_passwd% --default-character-set=utf8 %local_db%< pm.sql pause