1. 程式人生 > >shell日常練習——expect 實現百臺伺服器公鑰推送

shell日常練習——expect 實現百臺伺服器公鑰推送

作者簡介:
陳志珂(頭條號:強扭的瓜不好吃)目前就職於中國最大的安卓應用軟體公司,任高階工程師,現在公司任php開發工程師,python開發工程師,高階運維工程師,公眾號“鉛筆學園”運維內容合作作者之一。
鉛筆學園:IT資源分享|知識分享,做初級程式設計師的指明燈

#!/usr/bin/bash

>ip.txt

password=root

rpm -q expect &>/dev/null

if [ $? -ne 0 ];then

yum -y install expect

fi

if [! -f ~/.ssh/id_rsa ];then

ssh-keygen -P ""
-f ~/.ssh/id_rsa #這個是設定公鑰的密碼為空,而且不用敲回車鍵 fi for i in {2..254} do { ip=192.168.234.$i ping -c1 -W1 $ip &>/dev/null if [ $? -eq 0 ];then echo "$ip">>ip.txt /usr/bin/expect<<-EOF spawn ssh-copy-id $ip expect { "yes/no" {send "yes "; exp_continue } "password:" {send "$password"} } expect eof EOF fi
}& done wait echo "finish...."

相關推薦

shell日常練習——expect 實現伺服器

作者簡介: 陳志珂(頭條號:強扭的瓜不好吃)目前就職於中國最大的安卓應用軟體公司,任高階工程師,現在公司任php開發工程師,python開發工程師,高階運維工程師,公眾號“鉛筆學園”運維內容合作作者之一。 鉛筆學園:IT資源分享|知識分享,

Expect實現批量主機

centos7 shell expect 創建腳本文件推送公鑰,ping通一個,推送一個怎麽去請幫忙的人?(小工)註意不要按任何一個空格,要使用tab鍵盡量使用變量,不要用字符串.如何查看特殊字符(隱形字符)只要公鑰推送結束,expect就不需要了可能會有以下情況: expect沒有裝,可以編寫

利用shellexpect實現自動登入伺服器

前言:使用ssh登入內網伺服器,每次都要輸入以下命令,次數多了就感覺很麻煩。 [email protected]:~$ ssh [email protected] [email protected]'s password: 現在,我們可以使用Expect實現複雜的互

zabbix實現服務器的自動化監控--技術流ken

一個 null rip exp ces ras 方法 分布式 ech 前言 最近有小夥伴通過Q聯系到我說:公司現在有百多臺服務器,想要部署zabbix進行監控,怎麽實現自動化全網監控? 本篇博客就把我告訴他的解決方案寫出來,供大家以後參考。 實現自動化全網

shell中使用expect+ssh登陸遠端伺服器

expect "*#" #等待上一條命令執行完成 send "cd /home\r" # 進入/home目錄 expect "*#" send "touch test\n" #建立檔案test expect "*#" sen

實現ssh簡便登入和利用Polysh實現伺服器批量管理

在叢集管理中我們經常需要遠端跳轉到其他伺服器ssh [email protected]_host -p port 這裡我們編寫一個簡單的python指令碼實現遠端需求 config.py #!/usr/bin/env python # -*-

Nginx反向代理80埠,實現同一伺服器多個80埠

下載nginx 地址:http://nginx.org/download/nginx-1.9.12.zip 首先確認伺服器釋放80埠 以管理員身份cmd 執行nginx 生效後在conf資料夾中找到 nginx.conf檔案編輯 server { listen 80;

linux下rsync+inotify實現伺服器檔案實時同步

假設兩個伺服器: 192.168.0.1 源伺服器  有目錄 /opt/test/ 192.168.0.2 目標伺服器  有目錄 /opt/bak/test/ 實現的目的就是保持這兩個伺服器某個檔案目錄保持實時同步 實現方式: 通過rsync+inotify-too

【097】Nginx實現伺服器,兩個域名釋出不同的前端專案,並且兩個域名都用80埠。

有時候你可能需要在一個伺服器上,用 nginx 釋出兩個前端專案。並且這兩個前端專案使用不同的域名,域名都繫結80埠。本文說明此場景下的操作過程。Nginx使用的是 Docker 官方映象。本文依據的作業系統是 Linux Centos7.3 。 假設 you

C#實現伺服器資料實時的功能的原理

   有的時候我們需要實現伺服器的資料實時的向客戶端進行自動推送,這樣可以不適用輪詢的方式來查詢,首先講一下實現推送資料的原理,利用agsxmpp技術,首先是伺服器端開啟相應的持續監測埠例如:5222

apollo實現c#與android消息(三)

class net names oid urn 服務 mbo target parse 3 實現c#消息推送服務 c#實現消息推送必須引入M2Mqtt.dll,源碼 a 連接apache apollo代理服務器的代碼。需要引入using uPLibrar

springboot實現服務器端消息(websocket + sockjs + stomp)

client rem queue rip rsa socket gin enabled lis   服務器端推送技術在web開發中比較常用,可能早期很多人的解決方案是采用ajax向服務器輪詢消息,這種方式的輪詢頻率不好控制,所以大大增加了服務器的壓力,後來有了下面的方案

php+phantomjs實現今日頭條的首頁抓取

多人 -m tom 部件 length ole this 地方 有時 第一次搞爬蟲,經驗不足,爬出來的效果也不是很好,記錄一下吧。 認識的哥們最近在爬今日頭條的數據,不過他是做java的。之前也想用php做點爬數據的東西,於是直接也搞今日頭條,萬一有不明白的地方還能有個

dt7.0度熊掌當天主動方法

text appid lai con 全局變量 bsp tar common str 因自己沒事新做了一個網站,申請了一個熊掌號,所以做了這個主動推送接口,希望能收錄快些,在此分享下關於DT7.0主動當天推送功能 上代碼: <?php /*

Linux初級:gpg實現對稱加密和加密

gpg實現對稱加密 1、對檔案加密(對dushan這個檔案加密)gpg -c dushan 2、對檔案進行解密,(對生成的dushan.gpg並輸出到檔案file.txt中,注意-o選線必須在前-d在選項在後) gpg -o file.txt -d dushan.gpg gpg實

springboot2.x簡單詳細教程--伺服器端主動SSE技術講解(第十六章)

一、服務端推送常用技術介紹     簡介:服務端常用推送技術介紹,如websocket,sse輪詢等         1、客戶端輪詢:ajax定時拉取(延遲1s)     

通過spring提供的DeferredResult實現長輪詢服務端訊息

DeferredResult字面意思就是推遲結果,是在servlet3.0以後引入了非同步請求之後,spring封裝了一下提供了相應的支援,也是一個很老的特性了。DeferredResult可以允許容器執行緒快速釋放以便可以接受更多的請求提升吞吐量,讓真正的業務邏輯在

jfinal整合websocket 伺服器向瀏覽器通知

最近,需要公司需要寫一個app下單之後,後臺要接收到提醒的功能,需要伺服器向瀏覽器推送下單提醒通知。查了好多資料,中間也是遇到了一些坑,所以在這裡記錄一下。第一次寫部落格,有不對的地方,希望大牛指正。 一、要做的準備工作: 1.將專案放在tomcat裡面 2.下載一個w

使用spring boot +WebSocket實現(後臺主動)訊息

前言:使用此webscoket務必確保生產環境能相容/支援!使用此webscoket務必確保生產環境能相容/支援!使用此webscoket務必確保生產環境能相容/支援!主要是tomcat的相容與支援。有個需求:APP使用者產生某個操作,需要讓後臺管理系統部分人員感知(表現為一

ECS Linux 伺服器SSH登入

Ubuntu 14.04.1為例,設定步驟如下: 一. 生成金鑰的公鑰和私鑰 # ssh-keygen -t rsa  Generating public/private rsa key pair. Enter file in which to save the key (/roo