Linux 叢集上批量執行同一命令 shell 指令碼
先貼Shell 程式碼:
#!/bin/bash if [ "$#" -ne 2 ] ; then echo "USAGE: $0 -f server_list_file cmd" exit -1 fi file_name=$1 cmd_str=$2 cwd=$(pwd) cd $cwd serverlist_file="$cwd/$file_name" if [ ! -e $serverlist_file ] ; then echo 'server.list not exist'; exit 0 fi while read line do #echo $line if [ -n "$line" ] ; then echo "DOING--->>>>>" $line "<<<<<<<" ssh $line $cmd_str < /dev/null > /dev/null if [ $? -eq 0 ] ; then echo "$cmd_str done!" else echo "error: " $? fi fi done < $serverlist_file
程式碼很簡單,不解釋。
使用方法:
1. 新建一個檔案host_file_list,檔案中為伺服器的地址,每個一行;
2. 儲存上面shell 指令碼, 如儲存為 allcmd.sh,注意使用 chmod +x allcmd.sh 使之成為可執行指令碼;
3. 執行 allcmd.sh host_file_list md 即可, host_file_list 是第1步的檔名(記得和 allcmd.sh 放在相同目錄下), cmd 就是要執行的命令,用單引號包起來,例如:刪除/home/nuaazdh/下面的一個 tmp.txt 檔案: allcmd.sh host_file_list 'rm /home/nuaazdh/tmp.txt'
4. done!
相關推薦
Linux 叢集上批量執行同一命令 shell 指令碼
因實際開發需要,在叢集上多個機器上執行相同的命令,比如執行一個指定的指令碼、刪除相同目錄下的檔案(這個得慎重~~)等,組內的成員開發了一個 allscp (可以批量執行scp 命令來同步線上程式碼)非常好用,我自己也寫了
Kettle 叢集(cluster)在多個伺服器(windows、linux)上併發執行
Kettle叢集(cluster)在多個伺服器(windows、linux)上併發執行目錄不管是linux下還是windows下部署kettle前提是機器上都已安裝JDK。其次把kettle的安裝檔案解壓後即可。Windows下啟動spoon.bat;linux下啟動spoo
linux watch——重複執行同一命令
實際操操作過程中,經常會遇到重複執行同一命令,以觀察其結果變化的情況,以前經常是上下鍵加回車,或是Ctr+p然後回車的方式。現在告訴大家一個好用的命令——watch,它可以全屏執行這個命令,並顯示執行結果。例如:#watch uptime #watch -t uptime #
Linux遠端拷貝&遠端執行命令shell指令碼
很多時候linux伺服器管理、釋出程式碼等,通常需要兩個工具,一個是遠端拷貝,一個是遠端執行命令,下面介紹兩個比較好用的指令碼,實現這兩個功能。 需要安裝expect,遠端執行命令,centos下直接yum -y install expect,不能yum安裝下
批量複製及執行命令shell指令碼
平時在處理一個或幾個機器執行環境時,一個機器一個機器處理也能接受,但是如果是一批機器,幾十或幾百臺,要是一臺一臺去安裝環境,光是輸入同一的命令,估計你自己都想吐,所有聰明的人會想一些偷懶的辦法,確實可以找到一些省時省力的方法,比如寫一個批量處理shell指令碼,這幾天在處理一批(八九十臺)機器環境,找了一些批
[一天幾個linux命令] shell指令碼之正則表示式
shell指令碼之正則表示式 原文連結:Linux–shell指令碼之正則表示式 概念及特點 概念 正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定的字元、及這些特定字元的組合,組成一個"規則字串",這個"規則字串"用來表達對字串的一種過濾邏輯。規定一些特殊語
javaWeb專案釋出到linux伺服器上以及執行專案
1、將建立的web專案,上傳到伺服器之前需確認web.xml各引數是否正確,一定不要忘了確認一下Mysql的驅動jar包是否載入到lib包,url屬性value值設定成jdbc:mysql://伺服器的IP/埠號/資料庫名 2. 把做好的專案匯出 :點選file選項後選擇export,後選擇We
大資料學習筆記(Map Reduce在叢集上的執行架構)
MR1.X執行架構 JobTracter 核心,主,單點 排程所有的作業 監控整個叢集的資源負載 TaskTracter 從,自身節點資源管理 和JobTracter心跳,彙報資源,獲取Task Client 作業為單位 最終提交作業到JobTracker
在伺服器上批量執行test資料
今天要在伺服器上批量的跑測試程式碼,因為每個測試的模型和模型引數不同,所以每次都要手動的來修改test.py檔案中固定位置的引數,以及重新命名test.py檔案,然後再執行test_xxxx.py檔
Linux 執行定時任務 shell指令碼
Linux上面執行定時任務,我們可以利用crontab -e直接編輯定時任務 另外我們還可以寫好shell指令碼,定時去執行shell指令碼,這兩個方法都可以起到定時執行的作用 下面我詳細說一下入如何執行shell指令碼 1.宣告一下我安裝的lnmp環境,shell指令碼存
Linux系統中執行.sh(Shell指令碼)檔案
其中,以絕對路徑執行方法: (1)./home/test/shell/hello.sh,可以這樣執行是因為當前登入使用者是root,當前路徑是在/下,. 代表當前路徑。 (2)/home/test/shell/hello
linux伺服器上tomcat執行遇到的問題
問題描述:當tomcat啟動成功後,訪問web伺服器,請求失敗。導致失敗的原因之一可能就是防火牆將8080埠或者其他埠攔截掉了,我們需要重新開放8080或者其他埠,不建議關閉防火牆。 1.安裝 iptables-services yum install iptables-servic
Linux、centos 批量殺死程序命令
平時我們在殺死 同一類很多程序時,一個一個殺死太麻煩了! 用下面的命令一次性批量殺死 ps aux | grep xxx | grep -v grep | awk '{print $2}' | xargs kill -9 xxx 為程序名 例如 ps aux | gr
linux和Windows檔案不相容(shell指令碼執行錯誤 $'\r': command not found)
背景 將linux通過samba服務對映到windows平臺,在win平臺下建立一個指令碼,然後切換到linux下執行,報錯$’\r’: command not found。 原因 win平臺下的換行是:回車符 + 換行符,也就是\r\n。unix下是換行符\n。linux下
在Linux叢集上部署Spark之前準備
在Linux叢集上部署Spark Spark安裝部署比較簡單, 使用者可以登入其官方網站(http://spark.apache.org/downloads.html) 下載Spark最新版本或歷史版本,也可以查閱Spark相關文件作為參考。本書開始寫作時,本章所述的環境搭建均以Spar
ssh遠端到目標機器執行命令shell指令碼
linux下ssh到目標機器首先需要配置免密碼登陸,才能執行如下指令碼 hostnames伺服器列表檔案 master.hadoop w1.hadoop w2.hadoop w3.hadoop
Linux下如何定時執行mysql命令
1、Linux中的定時任務: 1-1.Linux中每行定時任務的描述格式如下: minute hour day month dayofweek command minute - 從0到59的整數
面試linux運維一定會問到Shell指令碼這24個問題
面試linux運維一定會問到Shell指令碼這24個問題 雖然現在Python在運維工作中已經使用很普遍,但是很多企業在找Linux雲端計算工程師的時候還是會問到 shell 指令碼的問題,它有助於你在工作環境中自動完成很多工。 如下是一些面試過程中,經常會遇到的 shell 指令碼面試問
Linux入門學習筆記(五)--Shell指令碼編寫
Shell指令碼的HelloWorld: cd /自己的路徑下 vi helloworld.sh 進入之後,預設是命令狀態,按i進入編輯模式 內容: #! /bin/bash echo "Hello World!"
kafka叢集一鍵啟動與停止shell指令碼
kafka叢集一鍵啟動與停止shell指令碼 準備工作: 已經配置了主機與ip對映關係,已經配置了免密登入; 一、啟動Kafka叢集的指令碼 自定義start_kafka_byfang.sh,啟動kafka叢集中所有節點 #!/bin/bash BROKERS="hx