大作業08 使用指令碼批量修改密碼

2021-08-31 11:37:16 字數 2051 閱讀 2037

[root@localhost ~]# vim mvpasswd.expect  #遠端更改密碼指令碼

#!/usr/bin/expect#使用指令碼遠端命令列執行命令

set host [lindex $argv 0]     #第1個引數

set passwd "root"

set password [lindex $argv 1]     #第2個引數

spawnsshroot@$host   #進入expect環境後才可以執行的expect內部命令,功能是給ssh執行加殼,用來傳遞互動指令

expect    # 判斷是否包含yes/no,第一次ssh連線會提示yes/no,繼續 

"password:"    #  以上ssh並輸入密碼登入 ,初始密碼為root

}expect "]*"

send "passwd\r"     #初始密碼passwd為root

expect ":"

send "$password\r"  #更改密碼為第2個引數

expect ":"

send "$password\r"  #再次確認,更改密碼為第2個引數

expect "]*"

send "exit\r"

interact   #執行完成後保持互動狀態,把控制權交給控制台

[root@localhost ~]#vim mvpasswd.sh  #呼叫指令碼

#!/bin/bash

for ip in `cat $1`    # 第乙個引數儲存ip列表的檔案

do./mvpasswd.expect $ip $2  # 第二個引數是需要修改的密碼

done

[root@localhost ~]# sh mvpasswd.sh /root/ip.txt "lri35krjf;ba"   #以上指令碼使用範例

[root@localhost ~]# vim cmd.expect

#!/usr/bin/expect

set user [lindex $argv 0]  # 系統使用者

set host [lindex $argv 1]  # 伺服器位址

set passwd [lindex $argv 2]  # 密碼

set cm [lindex $argv 3]  # 需要執行的命令

spawn ssh $user@$host

set timeout -1

expect

"password:"

}expect "]#"

send "$cm\r"

expect "]#"

send "exit\r"

interact

[root@localhost ~]# chmod a+x cmd.expect

[root@localhost ~]# vim cmd.sh  # 呼叫指令碼

#!/bin/bash

user=$2

password=$3

cm=$4

for ip in `cat $1`

do./cmd.expect "$user" "$ip" "$password" "$cm"

done

## 引數1是儲存ip列表的檔案路徑

## 引數2是使用者名稱

## 引數3是密碼

## 引數4需要執行的命令

# 使用這個指令碼批量安裝一些基礎通用的工具

[root@localhost ~]# sh ./cmd.sh "/root/ipall.txt" "root" "lri35krjf;ba" "yum -y install expect vim-enhanced epel-release libmcrypt-devel libmcrypt"

大作業11 指令碼批量遠端執行命令

然後再寫乙個通用的可以批量遠端執行命令的expect指令碼 root localhost vim cmd.expect usr bin expect set user lindex argv 0 系統使用者 set host lindex argv 1 伺服器位址 set passwd lindex...

使用shell指令碼批量建立使用者

1 使用for語句批量新增與刪除特定使用者 for語句的操作物件為使用者指定名稱的變數,並通過in關鍵字為該變數預先設定了乙個取值列表,多個取值之間以空格進行分隔。為於do done之間的命令序列稱為迴圈體。新增使用者 root localhost vim list.txt 準備乙個使用者名稱列表檔...

bat批量執行指令碼 檔案移動 複製 環境變數修改

最近根據專案安裝需求,編寫了乙個bat批量執行指令碼。指令碼實現的主要功能有 1 找到此指令碼目錄下的 包含 dl data 字串的資料夾 名稱 如dl 5c data v1.0.0.1 在此以deeplearndata表示 2 找到此指令碼目錄下的 包含 dl cpu 字串的資料夾名稱 如dl c...