1. 程式人生 > >基於expect開發免密碼分發多節點檔案,ssh多節點操作

基於expect開發免密碼分發多節點檔案,ssh多節點操作

直接上程式

#!/usr/bin/expect -f

set filepath "/home/text_file.txt"
set remotepath "/home/"
set password "123456"

foreach ip {
10.9.233.190
10.9.233.191
10.9.233.192
10.9.233.193
10.9.233.194
} {
#puts $ip;
spawn scp -r $filepath [email protected]$ip:$remotepath
expect {
    "*yes/no" { send "yes\r"; exp_continue }
    "*password:" { send "$password\r" }
}
interact   
}

注意:

該指令碼通過expect實現人機互動,expect需要tcl語言支援

指令碼開頭不是以往的/bin/bash,而是expect

注意空格的影響

set varname varvalue  通過set給變數賦值

put 將內容打印出來,做除錯用

加強版:批量檔案分發多節點

#!/bin/bash
   
src_dir=/home/patchdrs/*
dest_dir=/home/
password="123456"

find $src_dir | while read line  
do
filepath=$line
#echo $filepath
for ip in 192.168.1.1 192.168.1.2 192.168.1.2
do
expect << EOF
spawn scp -r $filepath 
[email protected]
$ip:$dest_dir expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "$password\r" } } expect eof EOF done done

ssh多節點操作linux命令

#指令碼內容
#!/bin/bash
   
baseDir=`cd \`dirname $0\`; pwd` 
ipFile=$baseDir/ip.conf
password="E65!9*wkQ"
   
while read line   
do
ip=$line
expect <<-EOF
   set timeout 3                      
   spawn ssh 
[email protected]
$ip expect { "*yes/no" { send "yes\r"; exp_continue } "*password:" { send "$password\r" } } expect "*#" send "df -h\r" expect "*#" send "exit\r" interact expect eof EOF done < $ipFile -------------------------------------------------- #ipconf檔案 10.37.47.93 10.37.47.94 10.37.47.95 10.37.47.96 over,這是最後一行,不要隨意新增無關行,ip寫在上面即可

相關推薦

基於expect開發密碼分發節點檔案ssh節點操作

直接上程式 #!/usr/bin/expect -f set filepath "/home/text_file.txt" set remotepath "/home/" set password "123456" foreach ip { 10.9.233.190 1

用html如何把頁面分割成檔案檔案拼接而成?

摘要: 不同平臺:pc端靜態html分割頁面,達到類似php等動態頁面的include引入頁面效果;手機端單一HTML5頁面建立多個頁面。 用html把首頁分成三個檔案 在PHP、JSP等動態頁面開發中,頁面裡引入其它頁面只需include()進來就可以實現頁面的分離。

ssh基於密鑰密碼登錄

oot -i etc 登錄 conf config strong 日誌文件 var 1.客戶端生成密鑰對 **ssh-keygen -t rsa ** 選項: -t:加密類型

Linux-11-SSH KEY密碼分發、管理、備份

SSH是專門為遠端登入會話和其他網路服務提供安全性的協議,利用SSH協議可以有效防止遠端管理中的資訊洩露問題。 預設情況下,SSH本身提供兩個服務功能:一個是類似telnet的遠端聯機shell服務,另一個是sftp-server,可以提供安全的FTP服務。 SSH提供兩

linuxscp傳輸檔案expect工具密碼輸入shell指令碼

expect是一個自動互動功能的工具。expect是開了一個子程序,通過spawn來執行shell指令碼,監測到指令碼的返回結果,通過expect判斷要進行的互動輸入內容(send)。簡單舉個列子說,

Centos 解決SSH 密碼登入 以及Crontab製作定時SSH自動登入和關閉的指令碼

一、SSH免密碼登入 假設要登入的機器為192.168.1.100,當前登入的機器為192.168.1.101。 首先在101的機器上生成金鑰(如果已經生成可以跳過): $ ssh-keygen -t rsa一路回車即可。 然後在將生成的公鑰複製到機器100上的~/.ssh/authorized_ke

centos 7 ssh密碼登入(補充1.6 SSH密登入)

參考(十分詳細):http://blog.csdn.net/newstruts/article/details/46424191 目的 在搭建Linux叢集服務的時候,主伺服器需要啟動從伺服器的服務,如果通過手動啟動,叢集內伺服器幾臺還好,要是像阿里1000臺

Java開發線上開啟編輯儲存Word檔案(支援瀏覽器)

Java呼叫PageOffice實現線上編輯儲存Word檔案(以jsp呼叫為例,支援SSM、SSH、SpringMVC等流行框架)1. 下載PageOffice開發包:http://www.zhuozhengsoft.com/dowm/ 下載PageOffice for JA

mybatis實現表一對一一對關聯查詢

轉自:https://blog.csdn.net/m0_37787069/article/details/79247321 1、一對一 關鍵字:association 作用:針對pojo物件屬性的對映       property:pojo的屬性名   &

maven 配置檔案環境管理

有時候,我們在開發和部署的時候,有很多配置檔案資料是不一樣的,比如連線mysql,連線redis,一些properties檔案等等 每次部署或者開發都要改配置檔案太麻煩了,這個時候,就需要用到maven的profile配置了 1,在專案下pom.xml的

java w3c解析xml檔案獲取指定節點內容讀取外部配置檔案

原始碼: package com.ys.adage.utils; import com.ys.adage.message.CodeObjectResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.

C語言連結串列:遍歷頭插尾插中間插入;頭節點刪除節點刪除中間刪除的操作

/****************************************************************************************************************************************

vue上傳檔案附件和其他資料一起傳給後臺

前端: 實現多圖上傳主要用到以下兩個屬性:        <el-form-item label="附件上傳" label-width="80px">       <el-f

嵌入式Linux網路程式設計TCP併發伺服器TCP執行緒併發伺服器TCP程序併發伺服器

文章目錄 1,TCP多執行緒併發伺服器 1.1,標頭檔案net.h 1.2,客戶端client.c 1.3,伺服器端server.c 2,TCP多程序併發伺服器 2.1,標頭檔案net.h 2.2,客

如何讀取xml檔案根據xml節點屬性查詢並輸出xml檔案

主要是應用SimpleXML和遞迴函式來根據key值來查詢,並將結果以xml格式輸出。 <?php header("Content-type: text/xml"); //以xml格式輸出檔案 @$key=$_GET['key']; $find=false; //echo $key."<

Jedis操作節點redis叢集及redisTemplate操作redis叢集(三)

package com.dream21th.dream21thredis.controller;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;im

Python Flask資料庫SQLAlchemy關聯查詢(表查詢)一對關聯

  demo.py(定義模型類,一對多關聯): # coding:utf-8 from flask import Flask from flask_sqlalchemy import SQLAlchemy # 匯入 app = Flask(__name__) # 通過類物

Pycharm執行.py檔案控制檯了很多無用資訊是命名問題

C:\Python35\python3.exe "E:\Program Files\JetBrains\PyCharm 2017.1.1\helpers\pycharm\_jb_unittest_run

flask 伺服器上面下載檔案 客戶端一次性上傳檔案

  #encoding=utf8 import flask,os,sys,time from flask import request,send_from_directory import multiEmbeddings  import tensorflow as tf &n

記一次java socket學習(簡單實用執行緒實現群聊)

學習過程是艱苦,學習結束是快樂的 目錄 用 [TOC]來生成目錄: 本來想寫一些文字描述描述,可是想不出來說啥。。。所以直接記錄程式碼了。。。 程式碼塊 因為喜歡把常量都提取出來 所以上來就是常量類: public class Const