校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > expect實現批量修改linux密碼腳本分享

expect實現批量修改linux密碼腳本分享

熱門標簽:聯通電話機器人怎么接 曲阜400電話辦理 安裝外呼系統費用 電銷機器人 劍魚 奧維互動地圖標注參數 寧波智能外呼系統公司 衛星地圖標注地名 地圖標注輻射圖案 申請公司400電話要注意什么

最近對linux批量執行的腳本很感興趣,在網上到處找有關expect批量執行腳本,今天就給大家共享一個批量修改密碼的腳本.

腳本內容:


復制代碼 代碼如下:

#!/usr/bin/expect
if { $argc2 } {
    send_user "usage: $argv0 host file> cmd file> \n"
    exit
}
 
# 機器列表數據格式:  IP  端口  舊密碼  新密碼
set hostfile    [ open [lindex $argv 0] ]
# 命令列表數據格式:  一條命令一行
set cmdfile    [ open [lindex $argv 1] ]
 
# 數據文件分割符,默認為空格
set part "\ "
 
# 過濾關鍵字
set key_password "password:\ "
set key_init "\(yes/no\)\&;\ "
set key_confirm "'yes'\ or\ 'no':\ "
set key_ps "*]#\ "
set key_newpassword "UNIX password:\ "
set timeout 30
 
log_file ./exprct.log
match_max 20480
 
while {[gets $hostfile _hosts_] >= 0} {
    set hosts [string trim $_hosts_]
    set str_index [string first $part $hosts]
    set host [string trim [string range $hosts 0 $str_index]]
    set temp [string trim [string range $hosts [expr $str_index + 1] [string length $hosts]]]
    set str_index [string first $part $temp]
 
    if { $str_index == -1 } {
        set port 22
        set pass $temp
        set newpass $temp
    } else {
        set port [string trim [string range $temp 0 $str_index]]
        set temp_pass [string trim [string range $temp [expr $str_index + 1] [string length $temp]]]
        set str_index [string first $part $temp_pass]
        set pass [string trim [string range $temp_pass 0 $str_index]]
        set newpass [string trim [string range $temp_pass [expr $str_index + 1] [string length $temp_pass]]]
    }
 
    spawn ssh -p $port $host
    while {1} {
        expect {
            "$key_password" {
                send "$pass\r"
            }
            "$key_init" {
                send "yes\r"
            }
            "$key_confirm" {
                send "yes\r"
            }
            "$key_ps" {
                while {[gets $cmdfile cmd] >= 0} {
                    send "$cmd\r"
                    expect {
                        "$key_ps" {
                            continue
                        }
                        "$key_newpassword" {
                            send "$newpass\r"
                            expect "$key_newpassword" {
                                send "$newpass\r"
                                expect "$key_ps"
                                continue
                            }
                        }
                    }
                }
                seek $cmdfile 0 start
                send_user "\r"
                break
            }
            timeout {
                puts "$host timeout\n"
                break
            }
        }
    }
    send "exit\r"
    close
    wait
}
 
close $hostfile
close $cmdfile
 
exit

您可能感興趣的文章:
  • Linux expect實現自動登錄腳本實例代碼
  • expect命令在linux下實現批量ssh免密
  • 詳解Linux使用shell+expect遠程登錄主機
  • linux expect實現登陸遠程主機并執行命令示例代碼
  • linux中expect的介紹與使用示例
  • Linux中使用expect腳本實現遠程機器自動登錄
  • Linux下使用expect命令編寫自動化交互腳本

標簽:遵義 安康 三門峽 上饒 大興安嶺 大慶 江西 仙桃

巨人網絡通訊聲明:本文標題《expect實現批量修改linux密碼腳本分享》,本文關鍵詞  expect,實現,批量,修改,linux,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《expect實現批量修改linux密碼腳本分享》相關的同類信息!
  • 本頁收集關于expect實現批量修改linux密碼腳本分享的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 综艺| 宁德市| 阿坝县| 龙山县| 清新县| 黄石市| 延长县| 南澳县| 定州市| 方正县| 丰原市| 特克斯县| 揭东县| 沂水县| 大厂| 五家渠市| 富阳市| 凤翔县| 柯坪县| 五河县| 会东县| 闽侯县| 县级市| 正定县| 宣武区| 慈溪市| 永登县| 烟台市| 罗山县| 珲春市| 大洼县| 泸溪县| 刚察县| 河津市| 黎平县| 宣恩县| 从化市| 胶南市| 漳浦县| 托里县| 镇沅|