Linux下Expect 完成自動輸入密碼

來源:互聯網
上載者:User

標籤:style   blog   color   sp   檔案   on   資料   div   問題   

今天要開發一個定時任務,然後加入cron列表中。但是有個問題擺在眼前,指令碼的執行中需要輸入資料庫密碼(貌似5.1版本以上不允許在-p後直接加密碼,會報錯)

mysql -u root -p << SQLuse db;set names utf8;`cat task.sql`SQL

運行上述代碼後,會提示:

Enter password:

 

expect可以協助我們完成這件事情:

將上述代碼儲存到一個檔案中:db.sh

並且編寫如下代碼儲存為db.exp:

#!/usr/bin/expect -fspawn db.shexpect "Enter password: "send "password\n"interact

第一行指示了這個指令碼要用哪個程式來運行;

第二行是重點,在EXPECT下啟動了一個我們要執行的程式;

第三行也是重點,我們要告訴expect,當什麼資訊出現時需要expect協助我們完成互動;

第四行就是出現輸入密碼的提示時,要發送的內容;

第五行的意思是保持互動,不要退出。如果沒有這一句,指令碼成功登入資料庫後,會立即退出。

 

執行

$expect db.exp

 

Linux下Expect 完成自動輸入密碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.