Linux FTP上传:“没有那个文件或目录”,但文件存在

i.a*_*els 6 debian ftp shell-scripting

我想使用 ftp 将备份档案从一台服务器上传到另一台服务器。在我的备份 cronjob 中,我使用此脚本上传文件:

MEDIAFILE=/var/somedir/somefile.encrypted
if [ -r $MEDIAFILE ]
# File seems to exist and is readable
then
ftp -n $FTPHOST <<END_SCRIPT
quote USER $FTPUSER
quote PASS $FTPPASS
cd backups
put $MEDIAFILE
quit
END_SCRIPT
fi
Run Code Online (Sandbox Code Playgroud)

此脚本返回:/var/somedir/somefile.encrypted: No such file or directory。但是该文件存在并且执行脚本的用户有权读取该文件。

是什么导致了这个错误?

cyb*_*x86 8

好吧,我应该这样做:

FTPHOST="domain.com"
FTPUSER="xxxxxx"
FTPPASS="xxxxxxxxx"
MEDIAFILE=/path/to/something.enc
if [ -r $MEDIAFILE ]
# File seems to exist and is readable
then
ftp -n $FTPHOST <<END_SCRIPT
quote USER $FTPUSER
quote PASS $FTPPASS
cd backups
bin
put $MEDIAFILE something.enc
quit
END_SCRIPT
fi
Run Code Online (Sandbox Code Playgroud)

我添加了要放置的远程文件名,并且 bin 命令 - 已测试并有效 - 希望它有所帮助。

编辑:我应该解释一下-如果未指定远程路径(第二个参数),则 put 命令将假定远程路径与本地路径相同-因此,如果没有远程路径,则在远程服务器上找不到该文件。