linux “无法统计远程文件:无此文件或目录”:在shell脚本中使用FTP从 *nix到Win

p1iqtdky  于 2022-11-02  发布在  Linux
关注(0)|答案(2)|浏览(117)

我正在使用Bash脚本通过FTP备份我的Web文件。正如标题所说,我有一个Ubuntu Web服务器,正在备份到一台Windows机器上。我在Windows机器上有一个ssh程序和FileZilla服务器,可以通过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

其他变量有点敏感,所以我不想发布它们,但到目前为止,凭据一直为我工作。
我得到的错误如下所示:

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

我已经ssh到文件夹和sftp的,所以我真的不知道是什么问题。AFAIK,cd是本机的窗口命令,而不仅仅是FTP的。
知道哪里出问题了吗?谢谢。

hfyxw5xn

hfyxw5xn1#

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:驱动器Map到FTP服务器中名为C的常规文件夹(并将所有其他已装载的驱动器Map到文件夹)。

wj8zmpe1

wj8zmpe12#

您可以在Linux中更改此目录的所有权:

$ sudo chown $USER /path/directory

我在这里找到了这个解决方案。

相关问题