我需要将文件从我的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站点没有问题。
提前感谢您的帮助
答案 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的权限有关。
答案 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的情况下运行远程命令,以防恶意代码搭载你的脚本