bash + ftp:上传时文件为空

时间:2011-03-09 15:10:25

标签: html linux bash ftp

我写了一个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,如果有帮助的话。

2 个答案:

答案 0 :(得分:0)

您可以尝试

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

答案 1 :(得分:0)

我想我把它排序了。我删除了这些行:

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

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

感谢所有帮助过的人。