解读shell之备份mysql脚本

来源:互联网 发布:上海unity3d公司 编辑:程序博客网 时间:2024/05/16 19:14

#!/bin/sh
export d
= `date  +% Y % m % d % H % M % S`   # 定义时间输出格式
mkdir 
- / 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  - - - - 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 
- " 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