expect交互命令与rsync文件同步

expect交互命令与rsync文件同步 。小编来告诉你更多相关信息 。
expect交互命令与rsync文件同步
为网友解答expect交互命令与rsync文件同步的电脑小知识 , 接下来一起来看看吧 。
介绍
expect命令是一个自动化工具 , 可以根据脚本与其他交互式程序进行交互,通过在脚本中设定期望值和响应值进行交互操作,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信 。
expect中,有三个重要的主命令,分别是spawn、expect、exp_send,这三个命令几乎存在于所有expect脚本中,除了这些之外,还有很多expect所特有的参数、变量,它们也作用于expect的方方面面 。
【expect交互命令与rsync文件同步】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 eofip_list_config
192.168.0.1 passwd1192.168.0.2 passwd1192.168.0.3 passwd1sync_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 iplistdoip=`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_rsyncsed -i \"s;dest;$des_file;g\" auto_expect_rsyncsed -i \"s;\\$ip;$ip;g\" auto_expect_rsyncsed -i \"s;\\$pwd;$pwd;g\" auto_expect_rsyncchmod +x $path/auto_expect_rsync$path/auto_expect_rsyncdone auto_expect_sshsed -i \"s;rsync -avzP;ssh;g\" auto_expect_sshsed -i \"s;:dest;;g\" auto_expect_sshsed -i \"s;\\$ip;$ip;g\" auto_expect_sshsed -i \"s;\\$pwd;$pwd;g\" auto_expect_sshchmod +x $path/auto_expect_sshdone < $path/ip_list_configexit 1}if [ $# -ne 4 ];thenecho -e \"\\e[32;5;1m please input current!! \\e[0m\\n\"show_usage;exit 1;fiwhile truedocase \"$1\" in-h | -help)show_usage;;-s | -source) source_file=$2echo $soutce_fileshift 2;;-d | -dest) des_file=$2echo $des_fileauto_rsyncauto_ssh;;*)show_usageexit 1;;esacdoneexpect交互命令与rsync文件同步 。小编来告诉你更多相关信息 。
expect交互命令与rsync文件同步
执行
sh sync_file.sh -s source_file -d des_file
  • -s:源文件地址
  • -d:传输到的目的地址
以上网介绍的expect交互命令与rsync文件同步的电脑IT小方法,供您全面了解参考!