1. 程式人生 > >Linux多臺主機批量命令指令碼

Linux多臺主機批量命令指令碼

轉自我的個人部落格:www.mylonly.com/?p=287
1 如果你只維護著1臺機器,這篇文章對你可能就沒啥用處了。

如果你維護著大量的Linux主機,就需要這樣一個指令碼幫助你完成日常維護工作,指令碼很簡單,主要是提供一個思路,其他功能的腳步都可以按照此指令碼的流程實現。

首先你需要指定一臺主機作為信任主機,這樣從這臺主機登入其他機器就不需要密碼了。

如何設定信任主機?

ssh-keygen -t rsa -N “”

cat /root/.ssh/id_rsa.pub|ssh IP ‘cat>>.ssh/authorized-keys’

在信任主機上執行上述命令,紅色IP處填其他機器的IP地址,這樣從信任主機登入該IP就不需要密碼了。

一個含有其他機器IP地址的hostlist文字檔案hostlist,放在信任主機上(和指令碼放在同一目錄)

比如你有4臺機器IP地址分別為192.168.2.1~192.168.2.4

文字檔案hostlist可以如下

192.168.2.1

192.168.2.2

192.168.2.3

192.168.2.4

指令碼會按行去遍歷hostlist

doCommand 指令碼

01 #!/bin/sh
02
03 doCommand()
04 {
05 hosts=`sed -n '/^[^#]/p' hostlist`
06 for host in $hosts
07 do
08 echo ""
09 echo HOST $host
10 ssh $host "[email protected]
"
11 done
12 return 0
13 }
14
15 if [ $# -lt 1 ]
16 then
17 echo "$0 cmd"
18 exit
19 fi
20 doCommand "[email protected]"
21 echo "return from doCommand"

 執行命令(記得先對doCommand.sh增加執行許可權 chmod u+x doCommand.sh)

./doCommand.sh “ls -al /root/”

這樣該指令碼就會在每臺機器上執行”ls -al /root/”這個命令,並返回結果在信任主機上。

相關推薦

Linux主機批量命令指令碼

轉自我的個人部落格:www.mylonly.com/?p=2871 如果你只維護著1臺機器,這篇文章對你可能就沒啥用處了。 如果你維護著大量的Linux主機,就需要這樣一個指令碼幫助你完成日常維護工作,指令碼很簡單,主要是提供一個思路,其他功能的腳步都可以按照此指

Linux主機批量執行命令

1、首先你需要指定一臺主機作為信任主機,這樣從這臺主機登入其他機器就不需要密碼了。 如何設定信任主機? 假設有四臺機器:192.168.2.1~192.168.2.4,其中192.168.2.1為信任機,那麼在192.168.2.1上執行如下命令: s

Linux主機間配置SSH免密登陸

包含 生成 目錄 apt 裏的 html .cn 密碼 查看 1.安裝ssh. sudo apt-get install ssh. 安裝完成後會在~目錄(當前用戶主目錄,即這裏的/home/xuhui)下產生一個隱藏文件夾.ssh(ls -a 可以查看隱藏文件)。如果沒有

linux shell編寫指令碼,執行命令同時操作主機

執行命令同時檢視多臺主機jps#!/bin/bash [email protected] i=201 for (( i = 1 ; i <= 3 ; i = $i + 1 )) ; do echo ============= es0$i $param

伺服器檔案分發指令碼命令執行指令碼

背景:基於hadoop的分散式部署 (具體請看文章),為了方便檔案的分發與命令的執行,顧編制此指令碼 伺服器配置四臺:(h101    192.168.44.101)(h102    192.168.44.102)(h103    19

利用shell指令碼執行ssh遠端另一主機執行命令並返回命令的結果集

假設從主機A,檢查主機B上的程序, 需要在主機B上建立檢查使用者,例如叫x, 並設定通過public key認證登入SSH,不會可以google搜一下, 然後,在A機器上執行: ssh [email protected] ~/command.sh > re

Linux 小工具---機器執行命令或複製檔案

今天寫了一個小工具,用shell實現從一臺機器往其他多臺機器複製檔案或者在其他多臺機器執行相同命令用的。 目錄結構如下, [[email protected]1 ~]# cd tools/ [[email protected]1 to

samba共享目錄主機掛載,搭建WordPress

搭建wordpress samba共享目錄多臺主機掛載 項目實踐一:(1) 使用samba共享/data/application/web,在目錄中提供wordpress; (2) 使用samba客戶端掛載samba server共享的目錄至/var/www/html;(3) 客戶端(lamp),部署w

遠程給主機安裝軟件

自動化案例1:在物理機上編寫一個自動化批量管理服務器的腳本。要求用ssh命令遠程給3臺虛擬機全自動安裝vsftpd、ftp、lftp、tree、samba、tftp-server、bind、dhcp、httpd、mariadb-server軟件,用rpm -q查詢軟件是否已安裝,全自動啟動vsftpd、sm

AWS cloudfomation模板2 創建主機

cloudfomation { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "template", "Parameters" : { "VpcId" : { "Type" : "AWS::EC2::V

系統程序的檢視(相關操作)及主機相連進行檔案的上傳下載,遠端複製及ssh操作的應用

###系統程序及服務控制### 1.##什麼是程序   程序是指在系統中正在執行的一個應用程式 3.檢視程序 1)圖形方式檢視 gnome-system-monitor 2)程序檢視命令       ps  &nbs

Centos6.5 Mysql5.7 主一從 (主機上拉取的資料 合併到同一臺數據庫)

我也是多文件參考,摸著石頭過河,花了不少時間,不過最終是配置成功(在配置的時候如果遇到錯誤,請自己找度娘解決) 以下是轉過來的部分做了修改:尊重原創,原創無價 #### 解決思路: 1、主資料庫使用Innodb引擎,並設定sql_mode為 NO_AUTO_CREATE_USER 2、從

Linux主機之間建立信任(ssh免密碼)

背景: 有時候我們在兩個主機之間複製檔案的時候,提示輸入密碼,很不方便,那如何免密碼複製呢?,就是使用通過linux公鑰和祕鑰,建立雙機信任關係。 在整理之前,我先說下ssh免密碼的要點 :  你想免密碼登陸到哪個主機哪個使用者, 就把你自己的公鑰檔案內容追加到遠端主

主機搭建redis叢集

之前在一臺主機上搭建好了一個叢集環境(192.168.187.226)就是基本的7000、7001、7002、7003、7004、7005,現在 想在192.168.187.227上部署一個redis伺服器port:7006新增進之前搭好的叢集。其實後來我測試功能及其儲存

【甘道夫】拷貝檔案到伺服器的Shell指令碼

在多機叢集環境中,經常面臨修改配置檔案後拷貝到多臺伺服器的情況,傳統的執行scp比較麻煩,所以寫了以下shell指令碼,可以將指定檔案拷貝到多臺機器。 使用方法請參見HELP部分程式碼。 #!/bin/bash help() { cat << HEL

Linux伺服器間SSH免密碼登入配置

SSH實現各個伺服器間的檔案相互備份,如執行scp命令,可以實現免密碼登入,從而可以使用SHELL指令碼實現一些自動化的處理。 假如A機要免密碼登入B機,具體方法如下: 1、在A機執行:"ssh-keygen -t rsa" 命令,建立公鑰資訊 #ssh-keygen

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

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

淺談TIDB及其整體架構 | docker-compose單機部署TIDB叢集 | 主機使用docker部署TIDB叢集 | 網路容器的作用

TiDB 是 PingCAP 公司設計的開源分散式 HTAP (Hybrid Transactional and Analytical Processing) 資料庫,結合了傳統的 RDBMS 和 NoSQL 的最佳特性。TiDB 相容 MySQL, 支援無限的水平擴充套件,

A,B,C三主機,A通過B連接通C;使用export將100主機批量實現key驗證;等實驗

操作主機 wql 成功 地址 直接 登錄 nop read broadcast 1、實驗:A,B,C三臺主機,A通過B連接通CA:centos7(192.168.93.254)B:centos6(192.168.93.253)C:R1(192.168.93.200)首先假設

伺服器批量增加,修改crontab

shell指令碼 批量增加: # Local Cluser LOCAL="10.10.10.10" # for local crontab_cluster="$LOCAL" # For Tmp TMP_FILE="/tmp/crontab" #定義陣列lines