[問題] - Expect parallel問題

看板Linux作者 (.........)時間4年前 (2019/12/11 17:15), 編輯推噓5(501)
留言6則, 6人參與, 4年前最新討論串1/1
我需要用Expect登入主機去執行一些指令,因主機數量眾多所以想看是否可以多process 的方式同時執行登入多主機並執行,所以想用expect以foreach的方式達到 以下是我的腳本內容,實際執行起來用ps查詢,確實同時生成多個process 但實際去看執行的結果,還是會依序一台一台的執行,並不是同時平行的方式執行 不知道是哪裡有問題?還是我的概念根本完全是錯的。 #!/usr/bin/expect set prompt "#" set password "xxx" set fd [open ./hosts r] set hosts [read -nonewline $fd] close $fd foreach host [split $hosts "\n" ] { set timeout 30 spawn ssh -oStrictHostKeyChecking=no user@$host lappend spawn_id_list $spawn_id } foreach id $spawn_id_list { set spawn_id $id expect \ "(yes/no)?" { send "yes\r" expect "password:?" { send "$password\r" } } "password:?" { send "$password\r" } expect "#" send "xxxx\r" expect "#" send "xxxx\r" send "exit\r" expect eof } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.80.132 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1576055714.A.501.html

12/11 17:41, 4年前 , 1F
不考慮同時執行多個except指令?
12/11 17:41, 1F

12/11 20:36, 4年前 , 2F
except不是本來就是一台台執行,應該跟foreach無關
12/11 20:36, 2F

12/12 07:42, 4年前 , 3F
就是個很普通的for迴圈而已,為什麼覺得會自動平行化@@
12/12 07:42, 3F

12/12 09:49, 4年前 , 4F
遠端對多部主機進行操作推薦使用 RehHat 出的 Ansible
12/12 09:49, 4F

12/12 13:02, 4年前 , 5F
我已經用ansible來解了,謝謝各位
12/12 13:02, 5F

12/12 13:57, 4年前 , 6F
推ansible
12/12 13:57, 6F
文章代碼(AID): #1TyBEYK1 (Linux)