expect与rsync 异步并行备份数据脚本
2014-08-11 11:03
351 查看
expect与rsync 异步并行备份数据脚本 #!/bin/bash #author:qunying.liu #2014.08.02 #脚本用途:通过rsync从远程机器备份数据到本机机器对应目录 #脚本目录:/usr/local/scripts/,expect脚本目录:/usr/local/scripts/dsfilersync, #备注:一个机器对应一个exp脚本,该脚本中包含该机器所有rsync同步目录。 #初始化目录 cd /usr/local/scripts/ grep "rsync -avz" ./dsfilersync/*.exp|awk '{print $NF}' >backupdir.info for DIR in `cat ./backupdir.info`; do [ ! -d $DIR ] && mkdir -p $DIR && echo "Create Dir $DIR done !" ls -ld $DIR done #统计需要备份的机器IP到dataserver.ip文件中 grep "rsync -avz" ./dsfilersync/*.exp|awk -F@ '{print $2}'|awk -F: '{print $1}'|sort |uniq >./dsfilersync/dataserver.ip tmp_fifofile="/tmp/fifo.$$" ;mkfifo "$tmp_fifofile" ;exec 6<>"$tmp_fifofile" ;rm $tmp_fifofile #通过管道文件,让expect脚本异步执行。 for ip in `cat ./dsfilersync/dataserver.ip`;do { echo "$ip,Begin at `date +%Y-%m-%d-%H-%M-%S`...." #每天中午12点清空日志 if [ 12 -eq $(date +%H) ];then echo "">/data/scripts/logs/time$ip.log echo "">/data/scripts/logs/datarsync$ip.log fi flag="`/bin/ps -ef|grep $ip.exp|grep -v grep`" if [ -z "$flag" ];then echo "$ip:Begin at `date +%Y-%m-%d-%H-%M-%S`" >> ./logs/time$ip.log cd /usr/local/scripts/ ( ./dsfilersync/$ip.exp 1> ./logs/datarsync$ip.log 2>&1 && echo "$ip:Finsh at `date +%Y-%m-%d-%H-%M-%S`" >> /data/applogs/time$ip.log ) || /usr/local/scripts/MonitorAgent -f monitor -t "data rsync file from $ip failed " -i " rsync file failed from $ip , please check /data/applogs/datarsync$ip.log " else echo "$ip: Already running...." fi } & done wait exec 6>&- echo "Finsh at `date +%Y-%m-%d-%H-%M`" $ip.exp: #!/usr/bin/expect -f # expect "#" set NDATE [exec date +%Y-%m-%d] set TDATE [exec date -d tomorrow +%Y-%m-%d] #set NDATE [exec date -d yesterday +%Y-%m-%d] #set TDATE [exec date +%Y-%m-%d] set timeout 12000; spawn /usr/bin/rsync -avz --include "*.tar.gz" --exclude "*.*" -e "/usr/local/bin/ssh -lqunying -p12345 -q" xiaoqiang@10.1.1.1:/data/test/welike/tmps/$TDATE /data/test/10.1.2.1/webs/tmp/ expect "password:" { send "hehe\n" ; exp_continue }
本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处http://liuqunying.blog.51cto.com/3984207/1538476
相关文章推荐
- 自制的一个自动备份数据文件脚本
- 写LINUX shell脚本 自动备份ORACLE用户下的表 保留30天数据
- rsync远程增量备份数据
- Rsync同步备份数据
- rsync 命令详细解释并附加备份脚本
- 电信实时计费数据(原始话单文件)备份脚本
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- Linux下配置rsync同步备份数据
- Oracle数据库数据导入导出基本方法及unix定时备份脚本
- sybase 备份数据脚本,备份出来的数据很小
- 利用rsync实现金笛邮件的用户数据的增量备份
- Mysql数据备份三(脚本备份mysqldump)
- 使用Windows命令行脚本,每天备份你的数据
- Debian 下用 rsync 实现网站数据备份
- Shell脚本实现sybase数据备份
- Mysql数据备份二(脚本备份mysqlhotcopy)
- 用Rsync(cwRsync)将Dreamhost的数据备份到Windows上
- 自动备份MySQL数据并上传到FTP上shell脚本
- 通过rsync远程增量备份您的数据
- Linux VPS下备份网站数据到ftp的一键脚本