我寫了一個bash腳本來更新我公司網站上的一個頁面。這是我到目前爲止:bash + ftp:上傳文件爲空
#!/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手動上傳時,它也可以正常工作。那麼,是什麼給了?
下面是從我的終端窗口的日誌:
[email protected]:~/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文件看起來是否正確?你能查看遠程機器上的文件權限和目錄權限嗎?確保他們沒問題。 (零文件*是*怪異的;-)! – shellter 2011-03-09 20:16:28
權限。你可能會做些什麼。對於* nix如何處理權限,我還很不熟悉,所以我不會感到驚訝。我會在一個小時左右工作 - 我會測試它並讓你知道。 – eckza 2011-03-10 12:43:12
並且發送和接收機器都是Ubuntu。不同的操作系統將有不同的Ftp客戶端,有時候根本不同的選項和處理。 – shellter 2011-03-10 14:43:35