日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【转】Shell脚本交互之:自动输入密码

發(fā)布時間:2023/12/15 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 【转】Shell脚本交互之:自动输入密码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

平時在控制臺輸入指令如:sudo、ssh、ftp或者修改admin權限的文件時候都會要求輸入password,但是在she'll腳本運行過程中該如何交互實現(xiàn)自動輸入密碼呢?

下面總結三種實現(xiàn)方法:

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

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

實現(xiàn)ftp自動登錄并運行l(wèi)s指令的用法如下:其中zjk為用戶名,zjk123為密碼

ftp -i -n 192.168.21.46 <<EOF
user zjk zjk123
ls
EOF

二:管道:跟重定向一樣,指令同樣要有參數(shù)來指定密碼輸入方式,如sudo的-S參數(shù),passwd的-stdin參數(shù)

所以實現(xiàn)sudo自動輸入密碼的腳本如下:其中zjk123為密碼

echo 'zjk123' | sudo -S cp file1 /etc/hosts

實現(xiàn)自動修改密碼的腳本寫法如下:

echo 'password' | passwd -stdin username

三:expect:上面介紹的兩種方法前提條件是指令有參數(shù)來設定密碼輸入方式,像ssh指令就沒有這樣的參數(shù),第三種交互方式就派上用場了

expect就是用來做交互用的,基本任何交互登錄的場合都能使用,但是需要安裝expect包

CentOS下安裝命令:yum install expect

語法如下:

#!/bin/expect
set timeout 30
spawn ssh -l jikuan.zjk 10.125.25.189
expect "password:"
send "zjk123"
interact

注意:expect跟bash類似,使用時要先登錄到expect,所以首行要指定使用expect

在運行腳本時候要expect file,不能sh file了

上面語句第一句是設定超時時間為30s,spawn是expect的語句,執(zhí)行命令前都要加這句

expect "password:"這句意思是交互獲取是否返回password:關鍵字,因為在執(zhí)行ssh時會返回輸入password的提示:jikuan.zjk@10.125.25.189's password:

send就是將密碼zjk123發(fā)送過去

interact代表執(zhí)行完留在遠程控制臺,不加這句執(zhí)行完后返回本地控制臺

expect基礎
expect常用的四個命令:
spawn
啟動新的進程
expect
從進程接收字符串
send 用于向進程發(fā)送字符串
interact 允許用戶交互
詳細解釋:
spawn命令用來啟動新的進程,spawn后的send和expect命令都是和使用spawn打開的進程進行交互。
send命令接收一個字符串參數(shù),并將該參數(shù)發(fā)送到進程。
expect命令和send命令相反,expect通常用來等待一個進程的反饋,我們根據(jù)進程的反饋,再發(fā)送對應的交互命令。
interact命令用的其實不是很多,一般情況下使用spawn、send和expect命令就可以很好的完成我們的任務;但在一些特殊場合下還是需要使用interact命令的,interact命令主要用于退出自動化,進入人工交互。比如我們使用spawn、send和expect命令完成了ftp登陸主機,執(zhí)行下載文件任務,但是我們希望在文件下載結束以后,仍然可以停留在ftp命令行狀態(tài),以便手動的執(zhí)行后續(xù)命令,此時使用interact命令就可以很好的完成這個任務。

---------------------

轉自:https://blog.csdn.net/zhangjikuan/article/details/51105166

總結

以上是生活随笔為你收集整理的【转】Shell脚本交互之:自动输入密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。