bash + ftp: при загрузке файл пуст - PullRequest
0 голосов
/ 09 марта 2011

Я написал скрипт 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 голосов
/ 10 марта 2011

Я думаю, что я получил это отсортировано.Я убрал строки:

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

, и это, похоже, помогло.По какой-то причине, по-видимому, скрипт обнулял файл warehouse.html на МОЕМ компьютере, а затем загружал его.

Спасибо всем, кто помог, хотя.

0 голосов
/ 09 марта 2011

Вы можете попробовать

  • переключиться в режим Asci, прежде чем положить файл
  • использовать пассивный режим ftp для передачи файла
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...