2012-09-26 57 views
1

我需要將文件從我的linux服務器傳輸到FTP服務器。linux腳本來自動執行ftp操作

我的shell腳本:

#! /bin/ksh 

    HOST='my_ip' 
    USER='userid' 
    PASSWD='password' 
    FILE='file.txt' 
    DIREC='/eir_log' 
    ftp -in $HOST << EOMYF 
    user $USER $PASSWD 
    binary 
    mkdir $DIREC 
    cd $DIREC 
    pwd 
    quit 
    EOMYF 

非常簡單的代碼。但問題是雖然我正好登錄FTP服務器,但它不允許我在FTP服務器中創建一個新目錄。起初,我想我的腳本有一些錯誤,但即使是單獨運行一個mkdir的FTP服務器,它顯示create directory failed。 有人可以讓我知道可能的錯誤,或者如果我的代碼中有任何錯誤,我錯過了。雖然pwd工作正常,這意味着沒有問題通過腳本在FTP站點登錄。

在此先感謝您的幫助

+0

您的用戶在該服務器上是否有$ HOME?在登錄後在腳本上加上'echo'cwd'' ... – Oz123

+0

All:我想在很長一段時間後再次回顧這個問題。雖然我的自動「ftp/sftp」現在工作正常,但我希望在期望的程序和下一次發送的期望程序之間保持休眠時間。這可以使用相同的linux睡眠來完成嗎? –

回答

1

可能的lftp(FTP腳本客戶端)將是你需要(你的發行版的包間看)的東西。創建目錄時出錯可能與您嘗試創建目錄的目錄的權限有關。

http://lftp.yar.ru/desc.html

3

看一看expect

的東西,讓你開始

#!/usr/bin/expect 

set timeout 120 
spawn ftp 192.168.0.210 
expect "Name" 
send "root\r" 
expect "Password:" 
send "pass\r" 
expect "ftp> " 
send "bye\r" 
0

如果你是root或具有管理員權限,那麼你不應該需要須藤用自己的方式爲建立一個目錄。最好是在沒有sudo的情況下運行遠程命令,以防惡意代碼搭載您的腳本