1. 程式人生 > >如何實現自動ftp上傳功能:expect

如何實現自動ftp上傳功能:expect

為了實現高度自動化的系統資源監控,且實現對監控到資料異常時日誌檔案的上傳(ftp),實現瞭如下指令碼(指令碼名稱:autofileupload):
#!/usr/local/bin/expect

set file [lindex $argv 0];
#set date [lindex $argv 1];
set timeout -1;
while {1} {
        spawn ftp 218.108.xxx.xxx;
        expect "Name";
        send "test/r";
        expect "Password";
        send "youpassword/r";
        expect "Login failed." {send "quit/r";close;wait} "ftp>" break;
}
send "mkdir $date/r";
expect "ftp>";
send "cd $date/r";
expect "ftp>";
send "bi/r";
expect "ftp>";
send "put $file/r"
expect "ftp>";
send "quit/r";

解釋:lindex表示list index,表示引數列表;
argv 0即表示第1個引數,agrv 1表示第二個...以此類推。
用法:./autofileupload [filename] [newdirname]。