【问题标题】:bash + ftp: File is empty on uploadbash + ftp:上传时文件为空
【发布时间】:2011-03-09 15:10:25
【问题描述】:

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

【问题讨论】:

  • .old 文件看起来是否正确?可以查看远程机器上的文件权限和目录权限吗?确保他们没问题。 (零文件很奇怪;-)!
  • 权限。你可能正在做某事。我仍然对 *nix 如何处理权限非常不熟悉,所以我不会感到惊讶。我会在一个小时左右工作 - 我会测试一下并告诉你。
  • 和都是Ubuntu的收发机。不同的操作系统会有不同的 Ftp 客户端,有时选项和处理完全不同。
  • 新奇事:当我运行脚本时,它会将我这边的warehouse.html 文件归零,而不是FTP 那边。我不知道为什么。无论如何,我删除了deleterename 行,它现在可以工作了。不过谢谢!

标签: html linux bash ftp


【解决方案1】:

你可以试试

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

【讨论】:

    【解决方案2】:

    我想我已经整理好了。我删除了这些行:

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

    这似乎起到了作用。出于某种原因,显然该脚本正在清零我电脑上的warehouse.html 文件,然后上传该文件。

    感谢所有提供帮助的人。

    【讨论】:

    • 所以您不在乎现有的 html.old 会发生什么,或者您不会保留备份副本? (也许这没关系,但是……)
    • 应该没问题。 HTML 是使用我从数据库导出的文件中编写的脚本动态生成的,并且我保留导出的副本 - 所以如果出现问题,从数据库导出中重新生成 HTML 会更有意义。
    • 很高兴听到它已排序。您可以通过单击此答案上/下箭头旁边的空心复选标记来接受您自己的答案。
    • @Otaku 谢谢。我已经试过了 - 我要到明天才能做到,但我会的。
    猜你喜欢
    • 2011-08-21
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多