【发布时间】:2014-06-02 07:53:45
【问题描述】:
我的 Unix FTP 脚本有问题...
它只传输我在 FTP 会话期间本地 cd'ing 目录中的前三个文件。
这是我正在使用的 bash 脚本:
#!/bin/sh
YMD=$(date +%Y%m%d)
HOST='***'
USER='***'
PASSWD=***
FILE=*.png
RUNHR=19
ftp -inv ${HOST} <<EOF
quote USER ${USER}
quote PASS ${PASSWD}
cd /models/rtma/t2m/${YMD}/${RUNHR}/
mkdir /models/rtma/t2m/${YMD}/
mkdir /models/rtma/t2m/${YMD}/${RUNHR}/
lcd /home/aaron/grads/syndicated/rtma/t2m/${YMD}/${RUNHR}Z/
binary
prompt
mput ${FILE}
quit
EOF
exit 0
有什么想法吗?
【问题讨论】:
-
你为什么要 cd'ing 到一个目录,然后在下一步尝试创建它?在尝试去那里之前创建它不是更好吗?还是我看错了?
-
如何在“mput”之前添加“!pwd”和“!ls”以确保您在您认为的位置?
-
如果它是一个 bash 脚本,如何将它放在 shebang 中,以便未来的读者和维护者知道您期待 bash 功能?
-
是您在其中放置严格的字母数字名称且没有空格或 UTF8 字符等的文件名吗?一些 ftp 客户端对可以在 1
mput中处理的文件数有限制,或者在我处理的 1 种情况下,构成 $FILE 变量的“单词”的总长度。如果关于 ubuntu 的情况属实,我会感到惊讶,但这可能是您的接收系统有限制。您可能需要进行一些实验才能弄清楚。祝你好运。 -
感谢大家的cmets!我将尝试使用 sftp 和/或 scp 进行试验,看看效果如何。
标签: linux bash unix ubuntu ftp