欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本執(zhí)行命令自動(dòng)填充密碼(自動(dòng)輸入密碼)

 更新時(shí)間:2023年02月21日 10:21:19   作者:學(xué)無止境gwx  
這篇文章主要介紹了shell?執(zhí)行命令自動(dòng)填充密碼,文中結(jié)合實(shí)例代碼通過三種方式講解了Shell?腳本自動(dòng)輸入密碼的方法,需要的朋友可以參考下

概述

日常開發(fā)過程中,經(jīng)常會(huì)有一些自動(dòng)化的操作受制于密碼,當(dāng)然,密碼是安全的。
常見的一些應(yīng)用場(chǎng)景,如ssh連接服務(wù)器、mysql登錄與備份、git上傳、網(wǎng)站登錄、ftp登錄、telnet等等。
那么我們今天就講如何在自動(dòng)化過程中,自動(dòng)的在tel終端中填充密碼(基于python的包)。

一、pexpect第三方包

Expect腳本語(yǔ)言,它是由TCL語(yǔ)言實(shí)現(xiàn)的,主要用于人機(jī)交互式對(duì)話的自動(dòng)化控制,pexpect就是在python的基礎(chǔ)上開發(fā)出的類似Expect功能的模塊。它的實(shí)現(xiàn)分為四部分:

  • 創(chuàng)建pexpect程序手柄
  • 通過內(nèi)置expect方法等待關(guān)鍵字
  • 匹配完成后授權(quán)手柄完成密碼的填充
  • 結(jié)束手柄并將控制權(quán)授予用戶終端Terminal(如果需要的話)

二、參數(shù)一欄

spawntimeoutmaxreadsearchwindowsizelogfileexpect
logfile_readcwdenvignore_sighupdelaybeforesendexpect_exact
expect_listexpect_loopsendsendlinesendcontrolsendeof
sendintrinteractcloseterminateKillflush
isaliveisattynextreadreadlinereadlines
setechosetwinsizewaitwaitnoechowritewritelines
beforeaftermatch

三、話不多說,上代碼

下面的案例是我導(dǎo)出數(shù)據(jù)庫(kù)數(shù)據(jù)寫的demo,執(zhí)行語(yǔ)法python backup.py >> backup.sql

import pexpect

# cmd = 'mysqldump -h 127.0.0.1 -uroot -P3306 -p123456 your-database'
cmd = 'mysqldump -h 127.0.0.1 -uroot -P3306 -p your-database'
proc = pexpect.spawn(cmd)
# 字串串匹配到返回值為0,列表匹配到返回列表中對(duì)應(yīng)的下標(biāo)
index = proc.expect('password:')
print(f'匹配到: {index} =>')
proc.sendline('123456')
proc.interact()

參考文章鏈接:

Pexpect 模塊使用說明

Python模塊Pexpect詳解

補(bǔ)充:Shell 腳本自動(dòng)輸入密碼的三種方式

注意,如果創(chuàng)建.sh文件后不可以執(zhí)行,請(qǐng)執(zhí)行sudo chmod 755 文件名.sh來修改權(quán)限。

方式一

使用 echo “密碼” | (管道符)

使用場(chǎng)景: sudo 命令

在使用普通用戶執(zhí)行 root 命令時(shí)有時(shí)候會(huì)需要輸入密碼,并且在輸入密碼后一段時(shí)間不需要再次輸入(但是不影響),這時(shí)候可以使用

echo "密碼" | sudo 命令

比如我需要一鍵清空服務(wù)器,則可以創(chuàng)建一個(gè)clear.sh文件(假使我的密碼是 123456):

echo "123456" | sudo rm -rf /*

那么在執(zhí)行的時(shí)候,我只需要./clear.sh就可以清空我的整個(gè)數(shù)據(jù)庫(kù)。

方式二

重定向

用重定向方法實(shí)現(xiàn)交互的前提是指令需要有參數(shù)來指定密碼輸入方式,如ftp就有-i參數(shù)來指定使用標(biāo)準(zhǔn)輸入來輸入密碼

shell用重定向作為標(biāo)準(zhǔn)輸入的用法是:cmd<<delimiter ,shell 會(huì)將分界符delimiter之后直到下一個(gè)同樣的分界符之前的內(nèi)容作為輸入

使用場(chǎng)景:不僅僅輸入一個(gè)密碼,還需要輸入用戶名。

ftp -i -n 192.168.21.46 <<EOF
user 用戶名 密碼
EOF

方式三

expect

echo + 管道符不是什么時(shí)候都可以生效(比如我寫的自動(dòng)提交博客腳本最后需要輸入我的服務(wù)器的 git 倉(cāng)庫(kù)密碼就不生效),因此我們可以使用 expect 方法來執(zhí)行。

set timeout 30
spawn ssh -l 用戶名 10.125.25.189
expect "password:"
send "要輸入的密碼"    
interact

這里的語(yǔ)句是這樣的:

設(shè)置超時(shí)時(shí)間為30s

  • spawn 是 expect 的起始語(yǔ)句,可以理解為從此處開始
  • spawn 后面的語(yǔ)句是執(zhí)行 ssh 連接

expect:當(dāng)發(fā)現(xiàn)password:這個(gè)字符串后,在后方輸入send后面的內(nèi)容
send:要輸入的密碼
interact:執(zhí)行完留在遠(yuǎn)程控制臺(tái),不加這句執(zhí)行完后返回本地控制臺(tái)

再舉一個(gè)例子

這個(gè)例子是我真實(shí)的腳本文件(但是磨掉了密碼),平時(shí)用于往我的服務(wù)器中提交 hexo 博客

cd /Users/jim/hexo
echo '123456' | sudo -S hexo clean 
sudo hexo g 
spawn sudo -S hexo d
expect "password:"
send "123456"

首先進(jìn)入到hexo文件夾下

因?yàn)橐玫絪udo 來 clean/generate/deploy我的博客,所以我這里使用一個(gè) echo+管道符,輸入一次 sudo 命令(短時(shí)間內(nèi)不需要再重復(fù)輸入,所以我只寫了一個(gè))

generate 一下 hexo 文件

提交到遠(yuǎn)程倉(cāng)庫(kù),這里需要輸入遠(yuǎn)程倉(cāng)庫(kù)的密碼,所以我用spawn標(biāo)記這句話

當(dāng) expect(發(fā)現(xiàn))到"password:"后執(zhí)行send

將我的密碼 send(發(fā)送到)到控制臺(tái)

到此這篇關(guān)于shell 執(zhí)行命令自動(dòng)填充密碼的文章就介紹到這了,更多相關(guān)shell 自動(dòng)填充密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

到此這篇關(guān)于shell腳本執(zhí)行命令自動(dòng)填充密碼(自動(dòng)輸入密碼)的文章就介紹到這了,更多相關(guān)shell 自動(dòng)輸入密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux中常用腳本和函數(shù)分享

    linux中常用腳本和函數(shù)分享

    這linux中經(jīng)常需要用到的一些腳本與函數(shù),這里簡(jiǎn)單的分享下,方便需要的朋友
    2013-02-02
  • 詳解adb shell 常用命令

    詳解adb shell 常用命令

    這篇文章主要介紹了詳解adb shell 常用命令,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 獲取服務(wù)器信息的Shell腳本分享(ubuntu、centos測(cè)試通過)

    獲取服務(wù)器信息的Shell腳本分享(ubuntu、centos測(cè)試通過)

    這篇文章主要介紹了獲取服務(wù)器信息的Shell腳本分享(ubuntu、centos測(cè)試通過),本文直接給出實(shí)現(xiàn)代碼,本文腳本實(shí)現(xiàn)獲取linux發(fā)行版名稱、查看系統(tǒng)是否為64位、系統(tǒng)內(nèi)核版本等信息,需要的朋友可以參考下
    2014-12-12
  • 防止ARP攻擊的shell代碼

    防止ARP攻擊的shell代碼

    防止ARP攻擊,使用命令route、grep、ifconfig等,需要的朋友可以參考下
    2013-02-02
  • Linux shell 提取文件名和目錄名的方法

    Linux shell 提取文件名和目錄名的方法

    這篇文章主要介紹了Linux shell 提取文件名和目錄名的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Shell實(shí)現(xiàn)文本去重并操持原有順序

    Shell實(shí)現(xiàn)文本去重并操持原有順序

    這篇文章主要介紹了Shell實(shí)現(xiàn)文本去重并操持原有順序,本文分步驟講解如何解決需求,并給出了若干方法,需要的朋友可以參考下
    2015-03-03
  • Linux 下的 unzip 命令使用示例詳解

    Linux 下的 unzip 命令使用示例詳解

    Unzip 是一個(gè)在 Unix 或類 Unix 系統(tǒng)(例如 Linux)中常用的命令行工具,用于解壓縮由 ZIP 壓縮算法創(chuàng)建的壓縮文件,本文給大家介紹Linux 下的 unzip 命令使用示例詳解,感興趣的朋友一起看看吧
    2023-11-11
  • shell腳本實(shí)現(xiàn)隨機(jī)生成10個(gè)8位密碼

    shell腳本實(shí)現(xiàn)隨機(jī)生成10個(gè)8位密碼

    這篇文章主要介紹了shell腳本實(shí)現(xiàn)隨機(jī)生成10個(gè)8位密碼的方法,這里推薦給大家,有需要的小伙伴的可以參考下。
    2015-03-03
  • linux find命令之exec簡(jiǎn)單概述

    linux find命令之exec簡(jiǎn)單概述

    這篇文章主要為大家詳細(xì)介紹了linux find命令之exec的簡(jiǎn)單使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Ubuntu中的sudo和su命令介紹

    Ubuntu中的sudo和su命令介紹

    這篇文章介紹了Ubuntu中的sudo和su命令,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評(píng)論