我正在使用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的。
知道哪里出问题了吗?谢谢。
2条答案
按热度按时间hfyxw5xn1#
这是因为FTP服务器不像Windows系统那样具有用于装载的驱动器号的概念。
您可以在连接到FTP时使用
pwd
来确定您当前所在的目录:...显示在您的环境中,FTP管理员将一个Windows
C:
驱动器Map到FTP服务器中名为C
的常规文件夹(并将所有其他已装载的驱动器Map到文件夹)。wj8zmpe12#
您可以在Linux中更改此目录的所有权:
我在这里找到了这个解决方案。