1

Linux サーバーから FTP サーバーにファイルを転送する必要があります。

私のシェルスクリプトは次のとおりです。

    #! /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サーバーに新しいディレクトリを作成できないことです。最初はスクリプトにエラーがあると思いましたが、個別にでもmkdirftpサーバーで実行するとcreate directory failed. 誰かがエラーの可能性を教えてくれますか、または私のコードに見逃しているエラーがあれば教えてくださいpwd.

よろしくお願いいたします。

4

4 に答える 4

4

期待して見てください

始めるための何か

#!/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"
于 2012-09-26T09:05:06.840 に答える
1

おそらくlftp(ftpスクリプトクライアント)が必要なものになるでしょう(ディストリビューションのパッケージを見てください)。ディレクトリの作成エラーは、おそらく、ディレクトリを作成しようとしているディレクトリの権限に関連しています。

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

于 2012-09-26T09:02:08.897 に答える
0

SCP(セキュアコピー)を試してみましたか?

scp -r /dir/to/"file.txt" ユーザー名@ホスト名

*送信したいファイル/フォルダーのディレクトリにいる場合は、完全なファイルパスを定義する必要はありません

パスワードを入力せずに scp を実行したい場合は、この記事をご覧ください。http://www.thegeekstuff.com/2008/06/perform-ssh-and-scp-without-entering-password-on-openssh/

于 2012-09-26T09:04:40.317 に答える
0

root であるか、管理者権限を持っている場合は、ディレクトリを作成するために sudo を実行する必要はありません。悪意のあるコードがスクリプトに便乗した場合に備えて、sudo を使用せずにリモート コマンドを実行することをお勧めします。

于 2012-09-26T09:11:41.033 に答える