“无法统计远程文件:没有这样的文件或目录”:在* nix到Win的shell脚本中使用FTP

时间:2014-07-16 20:27:58

标签: linux bash shell ssh ftp

我使用Bash脚本通过FTP备份我的网页文件。正如标题所说,我有一个Ubuntu网络服务器,我正在备份到Windows机器。我在Windows机器上有一个ssh程序和FileZilla Server,可以通过SSH和SFTP进入它。脚本的核心如下所示:

SRCDIR="C:\\Users\\Tech1\\testserverbackup"
DATAIN="/var/www/html/"
FILENAME="-r *"

sshpass -e sftp -oBatchMode=no -b - ${USER}@${LANHOST} << EOF
cd  ${SRCDIR}
lcd ${DATAIN}
mkdir $(date -I)
cd $(date -I)
put ${FILENAME}
bye
echo made it
EOF

其他vars有点敏感,所以我不想发布它们,但到目前为止,凭据一直在为我工作。

我得到的错误如下:

sftp>       cd  C:\Users\Tech1\testserverbackup
Couldn't stat remote file: No such file or directory

我已经进入了文件夹和sftp&d,因此我不确定问题是什么。 AFAIK,cd是本机Windows命令,而不仅仅是FTP命令。

任何想法出了什么问题?谢谢。

1 个答案:

答案 0 :(得分:1)

sftp>       cd  C:\Users\Tech1\testserverbackup
Couldn't stat remote file: No such file or directory

这是因为FTP服务器没有安装驱动器号的概念,就像Windows系统那样。

您可以在连接到FTP时使用pwd来确定您当前所在的目录:

sftp> pwd
/C/Users/Tech1

...这表明在您的环境中,FTP管理员将Windows C:驱动器映射到FTP服务器中名为C的常规文件夹(并将所有其他已安装的驱动器映射到文件夹)