繁体   English   中英

bash + ftp:上传文件为空

[英]bash + ftp: File is empty on upload

我已经编写了一个bash脚本来更新公司网站上的页面。 到目前为止,这是我得到的:

#!/bin/bash

ruby final_07.rb

HOST=ftp.website.com
USER=username
PASSWD=password

ftp -n -v $HOST <<EOF
user $USER $PASSWD
delete warehouse.html.old
rename warehouse.html warehouse.html.old
put warehouse.html warehouse.html

EOF

它可以很好地运行Ruby脚本。 它可以很好地连接到FTP。 它甚至可以重命名旧文件。 但是,当它“上载”时,我只是得到一个名为“ warehouse.html”的文件,该文件为0字节-完全为空。 我检查了,源文件很好。 当我使用FileZilla手动上传时,它也可以正常工作。 那么,有什么用呢?

这是我的终端窗口中的日志:

john@starfire:~/code/ruby/idealm_db_parser/final$ ./update_script_02.sh
Connected to www.website.com.
220 FTP Service
Remote system type is UNIX.
Using binary mode to transfer files.
331 Password required for user.
230 User user logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
250 DELE command successful
350 File or directory exists, ready for destination name.
250 Rename successful
local: warehouse.html remote: warehouse.html
200 PORT command successful
150 Opening BINARY mode data connection for warehouse.html
226 Transfer complete.
221 

在此先感谢您的帮助。 我正在运行Ubuntu 10.10,如果有帮助的话。

您可以尝试

  • 放入文件之前切换到asci模式
  • 使用被动ftp模式传输文件

我想我把它整理好了。 我删除了以下行:

delete warehouse.html.old
rename warehouse.html warehouse.html.old

这似乎可以解决问题。 由于某种原因,该脚本显然将我的计算机上的Warehouse.html文件清零,然后上传了该文件。

感谢所有帮助的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM