linux脚本自动执行ftp操作

时间:2012-09-26 08:59:00

标签: linux shell 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服务器中创建一个新目录。起初我认为我的脚本出现了一些错误,但即使我在ftp服务器中运行mkdir并显示create directory failed也是如此。 有人可以让我知道可能的错误,或者我错过了我的代码中的任何错误。pwd工作正常,这意味着通过脚本登录ftp站点没有问题。

提前感谢您的帮助

4 个答案:

答案 0 :(得分: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"

答案 1 :(得分:1)

可能lftp(ftp脚本客户端)将是您需要的东西(查看您的发行版的软件包)。创建目录时出错可能与您尝试创建目录的dir的权限有关。

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

答案 2 :(得分:0)

您是否尝试过使用SCP(安全复制)?

scp -r /dir/to/"file.txt“username @ hostname

*如果您在要发送的文件/文件夹的目录中,则无需定义完整的文件路径

如果您想scp而不必输入密码,请查看此文章。 http://www.thegeekstuff.com/2008/06/perform-ssh-and-scp-without-entering-password-on-openssh/

答案 3 :(得分:0)

如果您是root用户或具有管理员权限,那么您不需要以自己的方式制作目录。最好在没有sudo的情况下运行远程命令,以防恶意代码搭载你的脚本