Linux下後臺程式完成自動輸入密碼等互動行為的例子
今天要開發一個定時任務,然後加入cron列表中。但是有個問題擺在眼前,指令碼的執行中需要輸入資料庫密碼:
mysql -u root -p << SQL
use db;
set names utf8;
`cat task.sql`
SQL
執行上述程式碼後,會提示:
Enter password:
經過搜尋,發現expect可以幫助我們完成這件事情:
將上述程式碼儲存到一個檔案中:db.sh,並且編寫如下程式碼:
那麼我們執行之後,就會進入資料庫互動介面。#!/usr/bin/expect -f spawn db.sh expect "Enter password: " send -- "password\n" interact
第一行指示了這個指令碼要用哪個程式來執行;
第二行是重點,在EXPECT下啟動了一個我們要執行的程式;
第三行也是重點,我們要告訴expect,當什麼資訊出現時需要expect幫助我們完成互動;
第四行就是出現輸入密碼的提示時,要傳送的內容;
第五行的意思是保持互動,不要退出。如果沒有這一句,指令碼成功登入資料庫後,會立即退出。
相關推薦
Linux下後臺程式完成自動輸入密碼等互動行為的例子
今天要開發一個定時任務,然後加入cron列表中。但是有個問題擺在眼前,指令碼的執行中需要輸入資料庫密碼: mysql -u root -p << SQL use db; set names utf8; `cat task.sql` SQL 執行上述程式碼後,會
python, linux shell 使用expect模組自動輸入密碼
Pexpect 是一個自動控制的 Python 模組,可以用來ssh、ftp、passwd、telnet 等命令列進行自動互動。 官方網站是 http://www.noah.org/ 通過它,可以實現類似 expect 的操作。 例如我們可以用它來寫python指令碼
expect 普通用戶自動輸入密碼到root下,執行命令
expect案例:當前服務器取消了直接使用root登錄服務器,只能使用普通用戶先登錄,然後再su - root 執行root下的命令。 shell腳本如下: #!/usr/bin/expect -fset password {root_password}spawn su - rootexpect "
使程式在Linux下後臺執行 (關掉終端繼續讓程式執行的方法)
一、為什麼要使程式在後臺執行 我們計算的程式都是週期很長的,通常要幾個小時甚至一個星期。我們用的環境是用putty遠端連線到日本Linux伺服器。所以使程式在後臺跑有以下三個好處: 1:我們這邊是否關機不影響日本那邊的程式執行。(不會像以前那樣,我們這網路一斷開,或一關機,程式就
linux下python程式後臺執行,並將列印資訊儲存檔案
在跑比較時間比較長的程式,或者是列印資訊比較多的程式時,一般都會後臺執行程式,然後把列印資訊儲存在檔案中,等程式執行結束後再檢查輸出日誌。完成該功能可以用如下命令: nuhup python -u test.py > test.log 2>&1 &
linux下後臺執行python程式並輸出到日誌檔案中。
現有"test_read_pic_and_predict.py"程式要在後臺部署,裡面有輸出內容 執行命令: nohup python -u test_read_pic_and_predict.py > test.log 2>&1 &
Linux 下後臺執行程式,檢視和關閉後臺執行程式
1、執行.sh檔案 直接用./sh 檔案就可以執行,但是如果想後臺執行,即使關閉當前的終端也可以執行的話,需要nohup命令和&命令。 (1)&命令 功能:加在一個命令的最後,可以把這個命令放在後臺執行 (2)nohup命令
postgresql在windows下備份的批處理檔案(修改版),提示輸入密碼時,能自動輸入密碼
在網上找到一篇文章《PostgreSQL Windows自動備份指令碼》 覺得不錯,試了一下,發現批處理檔案執行停止在提示輸入密碼那。 >pg_dump -U postgres -W database1 > c:/backup.tar >passwo
linux下利用U盤自動更新程式
#include "sys/shm.h" #include <sys/ioctl.h> #include <sys/types.h> #include <sys/socket.h> #include <linux/if.h>
使程式在Linux下後臺執行,程式執行前後臺切換
一、為什麼要使程式在後臺執行 我們計算的程式都是週期很長的,通常要幾個小時甚至一個星期。我們用的環境是用Xshell遠端連線到Linux伺服器。所以使程式在後臺跑有以下兩個好處: 1:我們這邊是否關機不影響伺服器的程式執行。(不會像以前那樣,我們這網
linux指令碼實現自動輸入密碼
使用Linux的程式設計師對輸入密碼這個舉動一定不陌生,在Linux下對使用者有嚴格的許可權限制,幹很多事情越過了許可權就得輸入密碼,比如使用超級使用者執行命令,又比如ftp、ssh連線遠端主機等等,如下圖 那麼問題來了,在指令碼自動化執行的時候需要輸入密碼怎麼辦?比如你
linux使用expect實現自動登入(自動輸入密碼)
小蝙個人比較懶,每次都要登入多臺伺服器上工作,都要檢視note,什麼ip啦,埠啦,使用者名稱啦,密碼啦如果只有一個,那還是挺好記的,但是如果有10個,甚至更多,而且為了安全,每個伺服器的密碼都不一樣,ip和埠也不一樣,這樣就非常痛苦了,顧小蝙利用了一下expect軟體,用指令
linux 普通使用者登入後,執行 shell指令碼切自動輸入密碼切換到root
1.首先安裝expect 2.2.編寫指令碼 /home/zukgit/suz.sh #!/bin/bash # #!/usr/bin/expect -f 使用這種方式 程式無法執行 expect -c " spawn su - expect \":\" send
linux下將程式置於後臺執行的語句
由於我老是忘記,所以在部落格上記錄下來吧,比較好找,也方便使用:nohup sh job.sh > job.log 2>&1 &:執行shell檔案job.sh,用sh,輸出
以一個例子來講ubuntu12.04下指令碼檔案內執行sudo 命令自動輸入密碼
原文連線http://blog.sina.com.cn/s/blog_951ca19b0101be96.html 在上一篇的文章中(發文時間為2012-10-30 16:09),掛載U盤指令碼檔案和解除安裝U盤指令碼檔案中都用到sudo命令,因此需要使用者手動的輸入密
通過expect免自動輸入密碼登陸遠程服務器
新建 文件 安裝 nbsp exp 輸入密碼 spa 執行 0.10 通過expect免自動輸入密碼登陸遠程服務器 1、前提必須已經安裝expect 2、新建login.sh,文件內容如下 #!/usr/bin/expect -f spawn ssh [email
shell中scp自動輸入密碼
shell``` #!/bin/bash des_pass=testtest expect -c " spawn scp target/aaa-0.0.1.war [email protected]/* */:/home/GameUser/MagicvesselUserWeb/aaa-releas
Linux下 剛安裝完mysql 修改密碼
itl root密碼 date 修改 b- text password pda tex 在Centos中安裝MySQL後默認的是沒有root密碼的,默認的是回車, 那麽為了方便需要修改密碼。 沒有密碼為MYSQL加密碼: mysql -uroot -p 回車 提示輸入密
Linux下Qt5.6 Fcitx無法輸入中文輸入解決辦法
pos 版本 linux text git eat tor blog nal Qt5.6的解決辦法和之前的版本有點不同,方法如下:首先安裝 fcitx-frontend-qt5。然後執行: 123 sudo cp /usr/lib/x86_6
ssh采用expect實現自動輸入密碼登錄、拷貝
cep .html tro from 效果 方式 目標 led 交互 1. 引言 最近做了一個項目,需要頻繁與另一臺主機進行文件的傳輸;中間想到了很多方式:FTP、samba、curl等,但是還是感覺scp最好用。 SCP使用教程可參閱:http://www.jb51.