<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 平時在控制臺輸入指令如:sudo、ssh、ftp或者修改admin權限的文件時候都會要求輸入password,但是在she'll腳本運行過程中該如何交互實現自動輸入密碼呢? ## 重定向 重定向:用重定向方法實現交互的前提是指令需要有參數來指定密碼輸入方式,如ftp就有-i參數來指定使用標準輸入來輸入密碼 shell用重定向作為標準輸入的用法是: ``` cmd<< delimiter ``` > shell 會將分界符delimiter之后直到下一個同樣的分界符之前的內容作為輸入 ?實現ftp自動登錄并運行ls指令的用法如下:其中zjk為用戶名,zjk123為密碼 ``` ftp -i -n 192.168.21.46 <<EOF user zjk zjk123 ls EOF ``` ## 管道 管道:跟重定向一樣,指令同樣要有參數來指定密碼輸入方式,如sudo的-S參數,passwd的-stdin參數 ?所以實現sudo自動輸入密碼的腳本如下:其中zjk123為密碼 ``` echo 'zjk123' | sudo -S cp file1 /etc/hosts ``` 實現自動修改密碼的腳本寫法如下: ``` echo 'password' | passwd -stdin username ``` ## expect expect:上面介紹的兩種方法前提條件是指令有參數來設定密碼輸入方式,像ssh指令就沒有這樣的參數,第三種交互方式就派上用場了 expect就是用來做交互用的,基本任何交互登錄的場合都能使用,但是需要安裝expect包 語法如下: ``` #!/bin/expect set timeout 30 spawn ssh -l jikuan.zjk 10.125.25.189 expect "password:" send "zjk123\r" interact ``` 注意:expect跟bash類似,使用時要先登錄到expect,所以首行要指定使用expect 在運行腳本時候要expect ?file,不能sh file了 上面語句第一句是設定超時時間為30s,spawn是expect的語句,執行命令前都要加這句 expect "password:"這句意思是交互獲取是否返回password:關鍵字,因為在執行ssh時會返回輸入password的提示:jikuan.zjk@10.125.25.189's password: send就是將密碼zjk123發送過去 interact代表執行完留在遠程控制臺,不加這句執行完后返回本地控制臺 ## scp ssh自動填入密碼 scp和ssh方便好用而且安全,也許是為了更安全所以默認不會提供密碼傳參。 但如果你像我一樣需要在運行腳本中自動填入scp或ssh的密碼可以采用下面兩種方法 第一種比較簡單,直接使用sshpass命令傳遞密碼 ``` sshpass -p "your password" scp ./abc.txt hostname/abc.txt ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看