自动互信脚本shell/expect

cat >forallHost.sh
#!/bin/bash
for i in {1..9}
do
/usr/bin/expect autoyes.sh $i
done

cat >autoyesMkdir.sh
#!/usr/bin/expect
set time 1
set i [ lindex $argv 0 ]
spawn ssh 192.168.4.$i "mkdir /root/.ssh"
expect {
"password:" {send "123456\n"}
"#" {send "hostname\n"}
}

cat >autoyesUprsa.sh
#!/usr/bin/expect
set time 1
set i [ lindex $argv 0 ]
spawn scp -r /root/.ssh 192.168.4.$i:/root/.ssh
expect {
"password:" {send "123456\n"}
"#" {send "hostname\n"}
}

##################################################################3
cat uprsa.sh
#!/bin/bash -r /root/.ssh/ 192.168.4.$i:/root/.ssh/.
for i in {1..9}
do
scp -r /root/.ssh/
192.168.4.$i:/root/.ssh/.
done

cat startvm.sh
#!/bin/bashsh start rh7_node$i
for i in {1..9}
do
virsh start rh7_node$i
done

cat note
local ip --> 76.121.210.172
172.25.254.250
server -->172.25.0.11

cat forallHost.sh
#!/bin/bash
for i in {1..9}
do
expect autoues.sh $i
done

cat autoyes.sh
#!/usr/bin/expect
set time 1
set i [ lindex $argv 0 ]
spawn ssh 192.168.4.$i "mkdir /root/.ssh"
expect {
"password:" {send "123456\n"}
"#" {send "hostname\n"}
}

cat autoyesUprsa.sh
#!/usr/bin/expect
set time 1
set i [ lindex $argv 0 ]
spawn scp -r /root/.ssh 192.168.4.$i:/root/.ssh
expect {
"password:" {send "123456\n"}
"#" {send "hostname\n"}
}

原文地址:http://blog.51cto.com/creatoryuan/2144514

时间: 2024-10-04 16:52:44

自动互信脚本shell/expect的相关文章

shell编写的多服务器自动互信脚本(安装ceph)

相信大家都使用过分布式存储,而在分布式存储中较为出色的非ceph莫属了,但是这里就不深入聊ceph啦,我们只是聊聊安装ceph时遇到的问题. ceph需要多台主机进行ssh互信.三台还能忍受,但是当超过三台那工作量想想就令人发指,而且都是重复性的动作.这类操作必须要优化掉. 因此用shell写了一个多服务器互信脚本,仅供大家借鉴参考.具体脚本已经上传至github可在本公众号代码仓库中找到install_ceph进行下载使用. 代码不多说了比较简单,相信大家都能看懂! 这里只讲几点我当时的书写思

自动交互脚本之expect

一.Expect简介 在远程服务器执行某项任务,这是最正常不过了,如何有效自动的执行呢?这里介绍自动交互脚本expect的使用. Expect是一个简单的工具语言,功能就是进行自动化的人机交互.它的作者对Expect的定义:是一个实现自动交互功能的软件套件(a software suite for automating interactive tools),使用expect,它能帮助我们在合适的情景下进行合适的交互. Expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话&quo

pure-ftpd 写一个自动安装脚本shell

运行脚本后 输入 yes 就会自动安装 #!/bin/bash port=`netstat -lnp|grep :21|wc -l` check_ok() {         if [ $? -eq 0 ];then         echo "check ok" else echo "check error " && exit          fi } read -p "AUto install ftp input 'yes' inst

linux和windows下的自动ftp脚本(shell bat)

一.先来看linux下的: 复制代码 代码如下: #! /bin/bashcd /ftp/CURRENTDATE=` date +%Y%m%d `YESTERDAY=` date -d yesterday +%Y%m%d `THREEDAYAGO=` date -d '3 days ago' +%Y%m%d `#echo $TWODAYAGOftp -n -i 34.97.34.3 << !user ftpuser ftpuserbinmput $YESTERDAY.*delete $THRE

使用expect实现自动交互,shell命令行自动输入

背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的.如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况. 安装expect 安装依赖:yum install tcl -y 安装expect:Centos系统yum install expect -y或Ubuntu系统ap

把ps -ef &amp; kill指令写成可以自动执行的shell脚本

之前重启服务器上的服务,均是先使用ps -ef | grep xxx指令查询出PID,然后再使用kill -9 PID指令杀死进程.由于重启的服务只止一个,每次都要重复输入,甚是麻烦. 示例 今天研究了一下,把以上手动查杀.重启服务的过程写成了shell脚本,重启服务只需执行脚本就可以了.附脚本样例: 1 #!/bin/sh 2 3 # restart das-web 4 ps -ef | grep /home/***/das-web/ | awk '{print $2}' | xargs -n

Lvs别样的自动部署监控shell脚本

Lvs别样的自动部署监控shell脚本   l 脚本功能: l 实验环境图: l 具体脚本: l 结果验证: l 参考资料: 先申明,本文现在已经在我公司的测试环境和生产测试环境使用.正式环境请用keepalived+lvs. 安装ipvsadm不多说了,先说说脚本的功能,脚本分为redirect server 端和realserver 端,脚本分别为 lvs_redirector.sh 和realserver.sh脚本.另外加一个监控脚本lvs_monitor.sh(此脚本来源网友,做了一点修

mysql自动备份维护shell脚本

/opt/backup_online.sh #!/bin/bash#功能说明:本功能用于备份数据库 #数据库用户名dbuser='root'#数据库密码dbpasswd='zLaaa'#数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2dbname='adb bdb '#备份时间backtime=`date +%Y%m%d%H%M%S`#日志备份路径logpath='/opt/garbageBackup/'#数据备份路径datapath='/opt/garbage

shell脚本引用expect

+++++++++++++++++++++++++++++++++++++++ 标题:shell脚本引用expect 时间:2020年3月3日 +++++++++++++++++++++++++++++++++++++++ #!/usr/bib/env bash shell 程序片段....... /usr/bin/expect <<-EOF 非交互程序片段......... EOF shell 程序片段....... 原文地址:https://www.cnblogs.com/lv157240