国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

shell腳本-批量主機(jī)執(zhí)行命令(expect)

這篇具有很好參考價(jià)值的文章主要介紹了shell腳本-批量主機(jī)執(zhí)行命令(expect)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

shell腳本-批量主機(jī)執(zhí)行命令(expect)

準(zhǔn)備

上次連接多臺服務(wù)器使用ssh-keygen,24機(jī)器去連接22、25,所以存在.ssh/authorized_keys

1.如果有.ssh/authorized_keys該文件則先刪除

rm -rf.ssh/authorized_keys

expect介紹

1.expect命令含義
expect是一種腳本語言,它能夠代替人工實(shí)現(xiàn)與終端的交互,主要應(yīng)用于執(zhí)行命令和程序時,系統(tǒng)以交互形式要求輸入指定字符串,實(shí)現(xiàn)交互通信。

2.expect使用場景
(1)并根據(jù)預(yù)定標(biāo)準(zhǔn)回答其問題,回答“是”、“否”或?qū)⒖刂茩?quán)交還給您
(2)遠(yuǎn)程連接設(shè)備并執(zhí)行自動化操作
(3)主要是一些需要人機(jī)交互的地方,如果提前知道應(yīng)該輸入什么指令都可以使用expect 工具

3.expect命令

命令 作用
send 用于向進(jìn)程發(fā)送字符串
expect 從進(jìn)程接收字符串
spawn 啟動新的進(jìn)程
interact 允許用戶交互
exp_continue 處理匹配成功后,繼續(xù)執(zhí)行下一個匹配

命令中\(zhòng)r表示換行

實(shí)驗(yàn)步驟

1.安裝expect工具

yum install expect

2.創(chuàng)建host.info2文件

[root@localhost scripts]# vim host.info2
192.168.70.25 root 22 123456
192.168.70.22 root 22 123456

3.創(chuàng)建shell腳本

[root@localhost scripts]# vim 9.sh 
#!/bin/bash
COMMAND=$*
HOST_INFO=host.info2
IP_LIST=`awk '/^[^#]/{print $1}' $HOST_INFO`
for IP in $IP_LIST;do
        USER=`awk -v ip=$IP 'ip==$1{print $2}' $HOST_INFO`
        PORT=`awk -v ip=$IP 'ip==$1{print $3}' $HOST_INFO`
        PASSWD=`awk -v ip=$IP 'ip==$1{print $4}' $HOST_INFO`
        expect -c "
                spawn ssh -p $PORT $USER@$IP
                expect {
                        \"(yes/no)\" {send \"yes\r\"; exp_continue }
                        \"password:\" {send \"$PASSWD\r\"; exp_continue}
                        \"$USER@*\" {send \"$COMMAND\r exit\r\"; exp_continue}  
                }
        "
        echo "-----------------------------------"
done

4.執(zhí)行結(jié)果

bash 9.sh df -h

[root@localhost scripts]# bash 9.sh df -h 
spawn ssh -p 22 root@192.168.70.25
root@192.168.70.25's password: 
Last login: Wed Jul 12 01:30:48 2023 from 192.168.70.24
[root@localhost ~]# df -h
文件系統(tǒng)                 容量  已用  可用 已用% 掛載點(diǎn)
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  2.6G   15G   15% /
/dev/sda1               1014M  138M  877M   14% /boot
tmpfs                     98M     0   98M    0% /run/user/0
[root@localhost ~]#  exit
登出
Connection to 192.168.70.25 closed.
df -h
 exit
-----------------------------------
spawn ssh -p 22 root@192.168.70.22
root@192.168.70.22's password: 
Last login: Wed Jul 12 01:30:49 2023 from 192.168.70.24
[root@zabbix-agent02 ~]# df -h
文件系統(tǒng)        容量  已用  可用 已用% 掛載點(diǎn)
devtmpfs        476M     0  476M    0% /dev
tmpfs           487M     0  487M    0% /dev/shm
tmpfs           487M  7.7M  479M    2% /run
tmpfs           487M     0  487M    0% /sys/fs/cgroup
/dev/sda2        19G  2.1G   17G   11% /
/dev/sda1      1014M  132M  883M   13% /boot
tmpfs            98M     0   98M    0% /run/user/0
[root@zabbix-agent02 ~]#  exit
登出
Connection to 192.168.70.22 closed.
df -h
 exit
-----------------------------------

bash 9.sh free -m文章來源地址http://www.zghlxwxcb.cn/news/detail-547439.html

[root@localhost scripts]# bash 9.sh free -m
spawn ssh -p 22 root@192.168.70.25
root@192.168.70.25's password: 
Last login: Wed Jul 12 01:31:24 2023 from 192.168.70.24
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         173         690           7         108         670
Swap:          2047           0        2047
[root@localhost ~]#  exit
登出
Connection to 192.168.70.25 closed.
free -m
 exit
-----------------------------------
spawn ssh -p 22 root@192.168.70.22
root@192.168.70.22's password: 
Last login: Wed Jul 12 01:31:24 2023 from 192.168.70.24
[root@zabbix-agent02 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            972         150         707           7         114         690
Swap:             0           0           0
[root@zabbix-agent02 ~]#  exit
登出
Connection to 192.168.70.22 closed.
free -m
 exit
-----------------------------------

到了這里,關(guān)于shell腳本-批量主機(jī)執(zhí)行命令(expect)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Linux命令-shell】虛擬機(jī)中創(chuàng)建shell腳本、查看當(dāng)前路徑、執(zhí)行腳本

    目錄 一、創(chuàng)建shell腳本 二、查看當(dāng)前的路徑 三、執(zhí)行腳本 一、創(chuàng)建shell腳本 shell腳本的特點(diǎn) 提前將可執(zhí)行的命令語句寫入一個文件中 順序執(zhí)行 解釋器逐行解釋代碼 常見的腳本有:shell、python、PHP...... 注:用什么解釋器就是什么腳本 編寫shell腳本: 步驟: 1、新建文件 2、

    2024年02月05日
    瀏覽(95)
  • shell腳本利用telnet命令批量測試IP和端口的連通性

    IP和端用寫在一個文件里面,每行一個IP+端口,中間和冒號分隔,如下的方式: 192.168.1.1:80 192.168.1.2:8080 ...... 腳本如下:

    2024年02月04日
    瀏覽(23)
  • shell腳本ssh遠(yuǎn)程執(zhí)行命令給變量賦值的問題

    shell腳本ssh遠(yuǎn)程執(zhí)行命令給變量賦值的問題

    從A機(jī)器通過SSH方式到B機(jī)器,并執(zhí)行相關(guān)的命令。命令中包含變量及變量的賦值。 代碼如下,意思是,ssh到192.111.111.27這臺機(jī)器,cd到 / 根目錄下,并執(zhí)行l(wèi)s命令,如果ls出來的結(jié)果不為空,則執(zhí)行echo命令。可以肯定的是 / 根目錄下是有內(nèi)容的。 可以看到當(dāng)執(zhí)行到 echo 命令的時

    2024年02月12日
    瀏覽(27)
  • linux 之 shell腳本實(shí)現(xiàn)SFTP下載、上傳文件、執(zhí)行sftp命令

    linux 之 shell腳本實(shí)現(xiàn)SFTP下載、上傳文件、執(zhí)行sftp命令

    需求方通過sftp不定時的上傳一批用戶(SBXDS_ACC_M_任務(wù)ID_yyyymmddHHMMSS.csv),需要我們從這些用戶中找出滿足條件的用戶。然后把這些結(jié)果用戶通過文件的形式上傳到ftp。 ip1能連接hive庫環(huán)境,不能連接sftp。 ip2不能連接hive庫環(huán)境,能連接sftp。 ip1和ip2是共享盤,能同時訪問公共目錄

    2024年02月19日
    瀏覽(24)
  • shell腳本——expect腳本免交互

    shell腳本——expect腳本免交互

    目錄 一.Here Document 1.1.定義 1.2.多行重定向? 二.expect實(shí)現(xiàn)免交互 2.1.基礎(chǔ)免交互改密碼 2.2.expect定義 2.3.expect基本命令 2.4.expect實(shí)現(xiàn)免交互ssh主機(jī) 1.1.定義 使用I/O重定向的方式將命令列表提供給交互式程序,是標(biāo)準(zhǔn)輸 入的一種替代品,可以幫助腳本開發(fā)人員不必使用臨時文件來

    2024年02月12日
    瀏覽(17)
  • 在shell腳本中切換用戶之后再執(zhí)行多個函數(shù)以及執(zhí)行多行命令的方法和遇到的問題

    其中,username是您要切換到的用戶的用戶名,function1和function2是您要執(zhí)行的函數(shù)名稱,您可以根據(jù)需要添加更多函數(shù)和命令。在EOF標(biāo)記之間的所有內(nèi)容都將作為切換后的用戶執(zhí)行。請注意,您需要確保切換后的用戶具有執(zhí)行所需命令和函數(shù)的權(quán)限。 其中,username為要切換到的

    2024年02月04日
    瀏覽(23)
  • Shell編程基礎(chǔ)(十一)使用 expect 腳本處理人機(jī)交互

    先檢測是否有安裝 如果沒有安裝,就先安裝 我們在執(zhí)行某些程序時,可能會出現(xiàn)需要用戶在過程中輸入某些選項(xiàng)才能繼續(xù)執(zhí)行的場景。 比如 刪除一個文件時,如果沒有使用 -f 參數(shù),系統(tǒng)會提示是否確認(rèn)刪除 又或者 ssh 遠(yuǎn)程連接服務(wù)器,也會有一些需要用戶輸入的東西 當(dāng)我

    2024年02月13日
    瀏覽(30)
  • shell腳本——循環(huán)語句、sed、函數(shù)、數(shù)組、免交互expect

    shell腳本——循環(huán)語句、sed、函數(shù)、數(shù)組、免交互expect

    目錄 循環(huán)語句 for while 與 until sed 基本用法 sed腳本格式 函數(shù) 注意事項(xiàng) 定義函數(shù)和調(diào)用函數(shù) 腳本中函數(shù)的位置 查看函數(shù) 刪除函數(shù) 函數(shù)返回值 函數(shù)的傳參操作 使用函數(shù)文件 遞歸函數(shù)? 數(shù)組 聲明數(shù)組 數(shù)組切片 免交互expect 定義 ?基本命令 for循環(huán)需要知道循環(huán)的次數(shù) 格式1:

    2024年02月11日
    瀏覽(17)
  • 【Ubuntu】alias設(shè)置的別名命令在終端正常執(zhí)行在shell腳本中無法直接使用(command not found)?

    ?alias設(shè)置的別名命令在終端正常執(zhí)行在shell腳本中無法直接使用(command not found)? 1 背景????????????: setup_test為在/root/.bashrc中使用alias設(shè)置的別名命令。setup_test在命令行正常執(zhí)行,但是執(zhí)行sh腳本, 報(bào)錯:setup_test:command not found 。 shell腳本內(nèi)容如下:? 2 分析??????

    2024年02月09日
    瀏覽(31)
  • Shell腳本同時調(diào)用#!/bin/bash和#!/usr/bin/expect

    Shell腳本同時調(diào)用#!/bin/bash和#!/usr/bin/expect

    如果你想在一個腳本中同時使用bash和expect,你可以將expect部分嵌入到bash腳本中。以下是一個示例: 在這個示例中,我們使用了bash來設(shè)置變量和調(diào)用expect。然后,我們使用 EOF 和 EOF 來定義一個here文檔,其中包含了expect的命令。這樣,bash腳本就可以在執(zhí)行expect命令后繼續(xù)執(zhí)行

    2024年01月17日
    瀏覽(58)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包