我寫了一些腳本,從服務器到本地機器的ftp文件。腳本在差異模式下具有不同的行爲。我的代碼被破壞了嗎?在windows下的ftp腳本
如果我以交互方式運行時,FTP是罰款:
ftp> mget *abc*.reviewed
200 Type set to A.
200 PORT command successful.
150 Opening ASCII mode data connection for xxx_abc_yyyymmdd.reviewed(506 bytes).
226 Transfer complete.
ftp: 506 bytes received in 0.00Seconds 506000.00Kbytes/sec.
如果我安排它在Windows任務調度程序,它只能說明如下:
ftp> mget *abc*.reviewed
200 Type set to A.
我懷疑是有以下錯誤,但沒有日誌。我能做錯什麼?
樣品我的代碼:
call :Logic > E:\ftp_%yyyymmdd%.log 2>&1
exit /b 0
:Logic
ftp -i -s:C:\App\XXX\bin\ftp_script.txt some.host.net
我使輸出到一個日誌文件,但我不知道是否錯誤流已成功配置。我可能會失去一些錯誤日誌。 ftp_script.txt的
內容:
username
password
lcd E:\YYY
cd /XXX/YYY/ZZZ
mget *abc*.reviewed
mget *bcd*.reviewed
mget *cde*.reviewed
bye
進一步研究:
劇本是安排在晚上8點的日常運行。我今天檢查了服務器,發現目標服務器包含我想要的文件,最後修改了屬性6:54 PM。所以文件應該在晚上8點,並且它們在昨天的日程安排中不是ftp。
我假設上次修改的屬性等於它被複制(從其他目錄)或重命名(該文件應該從.csv重命名爲.reviewed)的時間。
我在12:40 pm安排了一次性關閉任務來運行腳本,並且這些文件已成功從目標服務器ftp到本地服務器。
這實在令人困惑。
它沒有PASV也沒有被動指令。 – lamwaiman1988
你可以嘗試** QUOTE PASV **如果是windows ftp.exe – eddo
你是否嘗試發佈DEBUG並將輸出重定向到文本文件以驗證會話的細節是什麼?它可能有助於診斷。 – eddo