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

Shell?腳本自動輸入密碼的三種方式小結

 更新時間:2022年07月01日 11:16:49   作者:不食花生的貓  
本文主要介紹了Shell?腳本自動輸入密碼的三種方式小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

方式一

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

使用場景: sudo 命令

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

echo "密碼" | sudo 命令

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

echo "123456" | sudo rm -rf /*

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

方式二

重定向

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

shell用重定向作為標準輸入的用法是:cmd<<delimiter ,shell 會將分界符delimiter之后直到下一個同樣的分界符之前的內容作為輸入

使用場景:不僅僅輸入一個密碼,還需要輸入用戶名。

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

方式三

expect

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

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

這里的語句是這樣的:

  • 設置超時時間為30s
  • spawn 是 expect 的起始語句,可以理解為從此處開始
  • spawn 后面的語句是執(zhí)行 ssh 連接
  • expect:當發(fā)現(xiàn)password:這個字符串后,在后方輸入send后面的內容
  • send:要輸入的密碼
  • interact:執(zhí)行完留在遠程控制臺,不加這句執(zhí)行完后返回本地控制臺

再舉一個例子

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

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

首先進入到hexo文件夾下

因為要用到sudo 來 clean/generate/deploy我的博客,所以我這里使用一個 echo+管道符,輸入一次 sudo 命令(短時間內不需要再重復輸入,所以我只寫了一個)

generate 一下 hexo 文件

提交到遠程倉庫,這里需要輸入遠程倉庫的密碼,所以我用spawn標記這句話

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

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

到此這篇關于Shell 腳本自動輸入密碼的三種方式小結的文章就介紹到這了,更多相關Shell 自動輸入密碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • bash scp command not found的解決方法

    bash scp command not found的解決方法

    今天在一系統(tǒng)上運行bash scp提示command not found,經(jīng)過如下方法解決了,需要的朋友可以參考下
    2013-03-03
  • Linux啟動新進程的幾種方法及比較

    Linux啟動新進程的幾種方法及比較

    有時候,我們需要在自己的程序(進程)中啟動另一個程序(進程)來幫助我們完成一些工作,那么我們需要怎么才能在自己的進程中啟動其他的進程呢?在Linux中提供了不少的方法來實現(xiàn)這一點,下面就來介紹一個這些方法及它們之間的區(qū)別。
    2017-04-04
  • linux中top命令詳解

    linux中top命令詳解

    top命令是Linux下常用的性能分析工具,能夠實時顯示系統(tǒng)中各個進程的資源占用狀況,類似于Windows的任務管理器。本文給大家簡單介紹下linux 中的top命令,感興趣的朋友一起看看吧
    2017-10-10
  • Shell實現(xiàn)程序造死循環(huán)的幾種方法示例

    Shell實現(xiàn)程序造死循環(huán)的幾種方法示例

    在linux下編程的程序猿都知道shell腳本,就算你不怎么熟悉,也應該聽過的吧!那在shell腳本中的死循環(huán)該怎么寫呢?下面這篇文章就來給大家介紹了關于Shell如何實現(xiàn)讓程序造死循環(huán)的幾種方法,需要的朋友可以參考下。
    2017-08-08
  • Shell交互批量更改主機名的方法

    Shell交互批量更改主機名的方法

    大家可能會遇到這種情況,需要批量修改主機名和同步hosts文件到多臺主機,例如新購置了一批云服務器等,可能主機名稱上并不能滿足你的命名規(guī)則或規(guī)范,但如果一臺臺去更改可能就太慢又無聊,所以shell腳本絕對是你的最佳選擇。下面看看Shell批量更改主機名的方法。
    2016-12-12
  • shell腳本實現(xiàn)實時檢測文件變更

    shell腳本實現(xiàn)實時檢測文件變更

    這篇文章主要介紹了shell腳本實現(xiàn)實時檢測文件變更,本文直接給出實現(xiàn)代碼和使用方法,以及svn下的實現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • Linux定時執(zhí)行任務at和crontab命令詳解

    Linux定時執(zhí)行任務at和crontab命令詳解

    本篇文章主要介紹了Linux定時執(zhí)行任務at和crontab命令這兩個命令的基本用法和區(qū)別,一起學習下。
    2017-11-11
  • 如何實現(xiàn)ls命令在Win7下正常運行

    如何實現(xiàn)ls命令在Win7下正常運行

    ls命令是Linux系統(tǒng)下最常用的命令之一,使用ls指令可列出目錄中的內容,包括文件和子目錄的名稱,下面通過本文給大家分享如何實現(xiàn)ls命令在Win7下正常運行,需要的朋友參考下吧
    2018-03-03
  • shell腳本退出的正確方式與最佳實踐

    shell腳本退出的正確方式與最佳實踐

    這篇文章主要給大家介紹了關于shell腳本退出的正確方式與最佳實踐,shell是linux系統(tǒng)必備工具,在linux系統(tǒng)里打開終端或者使用ssh連接時都是使用命令語言作為交互支撐,需要的朋友可以參考下
    2023-07-07
  • Shell獲取當前正在執(zhí)行腳本的絕對路徑

    Shell獲取當前正在執(zhí)行腳本的絕對路徑

    本文主要介紹了Shell獲取當前正在執(zhí)行腳本的絕對路徑,主要有三種方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論