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 服务器中创建新目录。起初我认为我的脚本有一些错误,但即使我mkdir在 ftp 服务器中单独运行它的显示create directory failed。有人可以让我知道可能的错误,或者我的代码中是否有任何我遗漏的错误。pwd虽然工作正常,这意味着通过脚本登录 ftp 站点没有问题。

在此先感谢您的帮助

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

如果您是 root 或具有管理员权限,那么您不需要使用 sudo 来创建目录。最好在没有 sudo 的情况下运行远程命令,以防恶意代码捎带您的脚本

于 2012-09-26T09:11:41.033 回答
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 回答