crontab 搭配 expect - Linux

Table of Contents

小弟用 expect 寫了一支 scp 的程式

定期會送 log 到另一台 server 上,手動執行沒問題

但放到 crontab 時就無法執行

expect 程式如下

log.sh
======================
#!/usr/bin/expect -f
spawn scp bash -c "/tmp/loginlog [email protected]:/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 [email protected]:/home/jjkkwsr/backup
password:
======================



爬過前文有人遇到相同的問題,癥結點似乎在於 crontab 的 stdin 和 stdout

請問有前輩可以指點小弟是否有什麼地方遺漏了嗎,感謝><


--
天烽火漫無邊 河漢界戰國天 霜覆雪麻煩牽 木生子帶頭尖
事綿延滿人間 亮情節非等閑 無宮闕難成仙 謀天下劃兩邊
該英雄出頭時 怨老天未眷顧 蒙今已非比昔 分藍袍破家門
羊變色任我顛 非總有清曉年 擔欲撐半邊天 手遮天禍人間

http://www.wretch.cc/user/jjkkwsr

--

All Comments

Zenobia avatarZenobia2012-03-15
設定scp無需使用密碼認証,改用key認証登入.
http://www.linuxproblem.org/art_9.html
Dorothy avatarDorothy2012-03-19
crontab格是好像有錯 沒有指定執行的使用者 如:root
ssh也要做key scp才不會問密碼
Ida avatarIda2012-03-24
感謝樓上回答,但因為我管理極大量的server
且數目還會持續增加,加上目的位址的server是別人的
Hedy avatarHedy2012-03-25
不得已才用expect互動式登入的方式orz