day 11 分发系统

[root@iZwz96qzfgxh9l2rk7esxnZ ~]# fg
vim 1.expect
#远程登陆
#!/usr/bin/expect
set host ""
set passwd ""
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"; exp_continue}
"assword:" { send "$passwd\r" }
}
interact
#远程登陆并执行命令
#!/usr/bin/expect
set user ""
set passwd ""
spawn ssh $user@
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
expect "]*"
send "touch /tmp/1.txt\r"
expect "]*"
send "echo 11111 > /tmp/1.txt\r"
expect "]*"
send "exit\r"

~                                                                                                                                       
~       

 

#传递参数
#!/usr/bin/expect
set user [lindex $argv 0]
set host [lindex $argv 1]
set passwd ""
set cm [lindex $argv 2]
spawn ssh $user@$host
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r"
expect "]*"
send "exit\r"

~                                                                                                                                       
~                                                                                                                                       
~                     
#同步文件
#!/usr/bin/expect
set passwd ""
spawn rsync -av root@  :/tmp/1.txt /tmp/
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect eof

shell项目-分发系统-构建文件分发系统

核心命令 rsync -av --files-from=list.txt  /  root@host:/

[root@iZwz96qzfgxh9l2rk7esxnZ expect]# vim rsync.expect
#!/usr/bin/expect
set passwd ""
set host [lindex $argv 0]
set file [lindex $argv 1]
spawn rsync -av --files-from=$file / root@$host:/
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect eof
~      

#遍历ip.list选择需要同步的IP,遍历list.txt选择需要同步的文件
[root@iZwz96qzfgxh9l2rk7esxnZ expect]# vim rsync.sh
#!/bin/bash
for ip in `cat ip.list`
do
    echo $ip
    ./rsync.expect $ip list.txt
done
          

shell项目-分发系统-命令批量执行

[root@iZwz96qzfgxh9l2rk7esxnZ expect]# vim exe.expect

#!/usr/bin/expect
set host [lindex $argv 0]
set passwd ""
set cm [lindex $argv 1]
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r"
expect "]*"
send "exit\r"
#遍历文件批量执行命令
[root@iZwz96qzfgxh9l2rk7esxnZ expect]# vim exe.sh

#!/bin/bash
for ip in `cat ip.list`
do
    echo $ip
    ./exe.expect $ip "w;free -m;ls /tmp"
done

 

posted @ 2018-12-29 22:57  依哈  阅读(99)  评论(0编辑  收藏  举报