设为首页 收藏本站
查看: 932|回复: 0

[经验分享] expect与rsync 异步并行备份数据脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-8-12 09:08:25 | 显示全部楼层 |阅读模式
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`"

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-23543-1-1.html 上篇帖子: Python 条件语句day05 下篇帖子: Python re模块中search与match的区别 expect
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表