我使用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命令。
任何想法出了什么问题?谢谢。
答案 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
的常规文件夹(并将所有其他已安装的驱动器映射到文件夹)