expect交互命令与rsync文件同步

expect交互命令与rsync文件同步。小编来告诉你更多相关信息。expect交互命令与rsync文件同步为网友解答expect交互命令与rsync文件同步的电脑小知识,接下来一起来看看吧。介绍exp

expect交互命令与rsync文件同步。小编来告诉你更多相关信息。

expect交互命令与rsync文件同步

为网友解答expect交互命令与rsync文件同步的电脑小知识,接下来一起来看看吧。

介绍

expect命令是一个自动化工具,可以根据脚本与其他交互式程序进行交互,通过在脚本中设定期望值和响应值进行交互操作,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。

expect中,有三个重要的主命令,分别是spawn、expect、exp_send,这三个命令几乎存在于所有expect脚本中,除了这些之外,还有很多expect所特有的参数、变量,它们也作用于expect的方方面面。

spawn激活,send发送到交互命令。

expect交互命令与rsync文件同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。

rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

说明

本文脚本主要是通过调用实现文件批量自动与多台服务器进行交互更新。

文件列表:

  • auto_expect:expect命令的执行模板。
  • ip_list_config:存放IP和密码的配置文件,IP在前,与密码之间用空格或tab隔开。
  • sync_file.sh:待执行脚本

auto_expect

#!/usr/bin/expect -fspawn rsync -avzP source root@$ip:destexpect {    \"(yes/no)?\" {send \"yes\\r\";exp_continue}    \"password:\" {send  \"$pwd\\r\"}}expect eof

ip_list_config

192.168.0.1 passwd1192.168.0.2 passwd1192.168.0.3 passwd1

sync_file.sh

#!/usr/bin/expect -f   ################define variables###############path=`pwd` ################begin of main #################       show_usage()   {           echo \"USAGE:$0\"           echo \"          [-s | -source]\"           echo \"          [-d | -des   ]\"           echo \"          [-h | -help  ]\"   }      auto_rsync()   {           while read iplist           do                   ip=`echo $iplist | awk \'{print $1}\'`                   pwd=`echo $iplist | awk \'{print $2}\'`                   echo -e \"$iplist\\n\"                   echo \"rsync -avzp $source_file root@$ip:$des_file\"                   sed -e \"s;source;$source_file;g\" auto_expect>auto_expect_rsync                   sed -i \"s;dest;$des_file;g\" auto_expect_rsync                   sed -i \"s;\\$ip;$ip;g\" auto_expect_rsync                   sed -i \"s;\\$pwd;$pwd;g\" auto_expect_rsync                   chmod +x $path/auto_expect_rsync                   $path/auto_expect_rsync           done auto_expect_ssh                   sed -i \"s;rsync -avzP;ssh;g\" auto_expect_ssh                   sed -i \"s;:dest;;g\" auto_expect_ssh                   sed -i \"s;\\$ip;$ip;g\" auto_expect_ssh                   sed -i \"s;\\$pwd;$pwd;g\" auto_expect_ssh                   chmod +x $path/auto_expect_ssh           done < $path/ip_list_config           exit 1   }   if [ $# -ne 4 ];then           echo -e \"\\e[32;5;1m please input current!! \\e[0m\\n\"           show_usage;           exit 1;   fi      while true   do           case \"$1\" in           -h | -help)           show_usage           ;;           -s | -source) source_file=$2           echo $soutce_file           shift 2           ;;           -d | -dest) des_file=$2           echo $des_file           auto_rsync           auto_ssh           ;;           *)           show_usage           exit 1           ;;           esac   done

expect交互命令与rsync文件同步。小编来告诉你更多相关信息。

expect交互命令与rsync文件同步

执行

sh sync_file.sh -s source_file -d des_file
  • -s:源文件地址
  • -d:传输到的目的地址

以上网介绍的expect交互命令与rsync文件同步的电脑IT小方法,供您全面了解参考!

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 5733401@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://fajihao.com/i/255680.html

(0)
恰卡的头像恰卡
上一篇 2023-11-05
下一篇 2023-11-05

相关推荐