我想使用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
该脚本返回:/var/somedir/somefile.encrypted:没有这样的文件或目录.但该文件存在,执行该脚本的用户有权读取该文件.
导致此错误的原因是什么?
解决方法
好吧,我应该这样做开始:
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
我添加了远程文件名来放置,并且bin命令 – 经过测试和工作 – 希望它有所帮助.
编辑:我应该解释一下 – 如果未指定远程路径(第二个参数),put命令将假定远程路径与本地路径相同 – 因此,如果没有远程路径,则在远程服务器上找不到该文件.