作者jjkkwsr (JJKKWSR)
看板Linux
標題Re: [問題] crontab 搭配 expect
時間Sat Mar 17 01:11:23 2012
感謝大家,我找到解法了!!!
關鍵在於需要"等到"要傳送的檔案開始傳送才可以繼續下個動作
以下是放到crontab可以work的程式
來源:
https://blogs.oracle.com/SanthoshK/entry/automate_linux_scp_command
#!/usr/bin/expect -f
# connect via scp
set timeout 600
spawn scp /u01/dumps/file.dmp "user@example.com:/home/santhosh/file.dmp"
expect {
-re ".*es.*o.*"
{
exp_send "yes\r"
exp_continue }
-re ".*sword.*"
{
exp_send "PASSWORD\r"
exp_continue }
-re "file.dmp.*" {
sleep 5 send "\r"
exp_continue }
}
exit
※ 引述《jjkkwsr (JJKKWSR)》之銘言:
: 小弟用 expect 寫了一支 scp 的程式
: 定期會送 log 到另一台 server 上,手動執行沒問題
: 但放到 crontab 時就無法執行
: expect 程式如下
: log.sh
: ======================
: #!/usr/bin/expect -f
: spawn scp bash -c "/tmp/loginlog jjkkwsr@192.168.2.204:/home/jjkkwsr/backup"
: expect "password:"
: send "****\n"
: interact
: ======================
: crontab 設定如下(都已用完整路徑)
: ======================
: */1 * * * * /usr/bin/expect /export/log.sh > monitor
: ======================
: 執行完 crontab 後的記錄檔,發現卡在 password
: ======================
: spawn scp bash -c /tmp/loginlog jjkkwsr@192.168.2.204:/home/jjkkwsr/backup
: password:
: ======================
: 爬過前文有人遇到相同的問題,癥結點似乎在於 crontab 的 stdin 和 stdout
: 請問有前輩可以指點小弟是否有什麼地方遺漏了嗎,感謝><
--
連天烽火漫無邊
楚河漢界戰國天
加霜覆雪麻煩牽
一木生子帶頭尖
戰事綿延滿人間
瑜亮情節非等閑
上無宮闕難成仙
共謀天下劃兩邊
是該英雄出頭時
也怨老天未眷顧
阿蒙今已非比昔
三分藍袍破家門
豬羊變色任我顛
是非總有清曉年
扁擔欲撐半邊天
隻手遮天禍人間
http://www.wretch.cc/user/jjkkwsr
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.138.164.5
→ zx1986:我也有在用 execpt 好筆記先收下了 感謝 03/24 12:13
→ zx1986: expect .... 03/24 12:13