มีปัญหาในการล้างไดเรกทอรีและอัปโหลดไฟล์ผ่านไฟล์แบตช์


0

ฉันใช้ Filezilla-Server บนเซิร์ฟเวอร์ Windows 2012R2 Standard ฉันพยายาม ftp in และส่งไฟล์จากเซิร์ฟเวอร์ Windows 2012R2 มาตรฐานอื่น

ฉันกำลังเรียกใช้ไฟล์แบตช์นี้:

@echo off
cls
echo open xxx.xxx.xxx.xxx> ftpcmd.dat
echo user xxxxxxxxx>> ftpcmd.dat
echo xxxxxxxx>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo lcd %1>> ftpcmd.dat
echo lcd %1zip>> ftpcmd.dat
echo pwd>> ftpcmd.dat
echo mdelete *>> ftpcmd.dat
echo mkdir %1>> ftpcmd.dat
echo cd %1>> ftpcmd.dat
echo mput *.*>> ftpcmd.dat
echo quit>> ftpcmd.dat
@echo on
ftp -i -n -s:ftpcmd.dat 

นี่คือผลลัพธ์เมื่อฉันเรียกใช้:

C:\backup>ftp -i -n -s:ftpcmd.dat
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220-FileZilla Server version 0.9.44 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit http://sourceforge.net/projects/filezilla/
ftp> user xxxxxxxxx
331 Password required for xxxxxxxxx

230 Logged on
ftp> bin
200 Type set to I
ftp> lcd ppsvm
Local directory now C:\backup\ppsvm.
ftp> lcd ppsvmzip
Local directory now C:\backup\ppsvm\ppsvmzip.
ftp> pwd
257 "/" is current directory.
ftp> mdelete *
_   <-- it just sticks here and goes nowhere

อย่างที่คุณเห็นจาก ^ ด้านบนมันหยุดที่ mdelete และไม่ทำอะไรเลย

ฉันตรวจสอบบันทึก Filezilla-Server แล้วมันแสดงสิ่งนี้:

8:28:21 AM - (not logged in)> Connected, sending welcome message...
8:28:21 AM - (not logged in)> 220-FileZilla Server version 0.9.44 beta
8:28:21 AM - (not logged in)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
8:28:21 AM - (not logged in)> 220 Please visit http://sourceforge.net/projects/filezilla/
8:28:21 AM - (not logged in)> USER xxxxxxxxxxxxx
8:28:21 AM - (not logged in)> 331 Password required for xxxxxxxxxxxxx
8:28:21 AM - (not logged in)> PASS ****************
8:28:21 AM - xxxxxxxxxxxxx> 230 Logged on
8:28:21 AM - xxxxxxxxxxxxx> TYPE I
8:28:21 AM - xxxxxxxxxxxxx> 200 Type set to I
8:28:21 AM - xxxxxxxxxxxxx> XPWD
8:28:21 AM - xxxxxxxxxxxxx> 257 "/" is current directory.
8:28:21 AM - xxxxxxxxxxxxx> TYPE A
8:28:21 AM - xxxxxxxxxxxxx> 200 Type set to A
8:28:21 AM - xxxxxxxxxxxxx> PORT xxx,xxx,xxx,xxxx,xxxx,xxxx
8:28:21 AM - xxxxxxxxxxxxx> 200 Port command successful
8:28:21 AM - xxxxxxxxxxxxx> NLST *
8:28:21 AM - xxxxxxxxxxxxx> 150 Opening data channel for directory listing of "/*"
8:28:32 AM - xxxxxxxxxxxxx> 425 Can't open data connection for transfer of "/*"

ฉันได้เพิ่ม Filezilla-Server ไว้ในการตั้งค่าไฟร์วอลล์ของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันยังปิดไฟร์วอลล์เพื่อตรวจสอบว่าไม่ได้รบกวนดังนั้นฉันไม่เชื่อว่ามันเป็นไฟร์วอลล์

ฉันกำลังหลงทางว่าเกิดอะไรขึ้น ใครมีข้อเสนอแนะ?


เมื่อคุณบอกว่าคุณปิดไฟร์วอลล์คุณหมายถึงทั้งสองเครื่องหรือไม่ FTP ที่ใช้งานอยู่เป็นแบบสองทิศทาง (การควบคุมเชื่อมต่อไปยังไคลเอ็นต์ -> srv, การเชื่อมต่อข้อมูล srv -> ไคลเอนต์)
wmz

ฉันจะปิดถ้าเปิดทั้งสองและดูว่าจะช่วยแก้ปัญหา
ErocM

@wmz นั่นแหล่ะ ฉันปิดการใช้งานไฟร์วอลล์และทำงานได้โดยไม่มีปัญหา หากคุณโพสต์สิ่งนี้เป็นคำตอบของคุณฉันจะให้เครดิตคุณ ขอบคุณ!
ErocM

คำตอบ:


2

FTP ที่ใช้งานอยู่เป็นแบบสองทิศทาง (การควบคุมเชื่อมต่อไปยังไคลเอ็นต์ -> srv, การเชื่อมต่อข้อมูล srv -> ไคลเอนต์) ดังนั้นจึงจำเป็นต้องอนุญาตการเชื่อมต่อขาเข้าบนพอร์ตเฉพาะสำหรับเซิร์ฟเวอร์และไคลเอนต์

นี่คือคำพูดจากFileZilla wiki (ซึ่งมีคำอธิบายที่ดีเกี่ยวกับ ftp internals)

สิ่งที่แตกต่าง FTP จากโปรโตคอลอื่น ๆ ส่วนใหญ่คือการใช้การเชื่อมต่อรองสำหรับการถ่ายโอนไฟล์ เมื่อคุณเชื่อมต่อกับเซิร์ฟเวอร์ FTP คุณกำลังทำการเชื่อมต่อที่สองจริง ๆ ขั้นแรกให้สร้างการเชื่อมต่อการควบคุมที่เรียกว่าคำสั่ง FTP และคำตอบที่ถ่ายโอน จากนั้นเพื่อถ่ายโอนไฟล์หรือรายการไดเรกทอรีลูกค้าส่งคำสั่งเฉพาะผ่านการเชื่อมต่อการควบคุมเพื่อสร้างการเชื่อมต่อข้อมูล

( ... )

ในโหมดแอ็คทีฟไคลเอ็นต์จะเปิดซ็อกเก็ตบนเครื่องโลคัลและแจ้งแอดเดรสไปยังเซิร์ฟเวอร์โดยใช้คำสั่ง PORT เมื่อลูกค้าออกคำสั่งให้โอนไฟล์หรือรายชื่อเซิร์ฟเวอร์จะเชื่อมต่อกับที่อยู่ที่ลูกค้าให้ไว้

คุณจะพบข้อมูลเกี่ยวกับการกำหนดค่าไฟร์วอลล์สำหรับไคลเอนต์และเซิร์ฟเวอร์ในวิกิ


ฉันเพิ่ม c: \ windows \ systems32 \ ftp.exe ไปยังไฟร์วอลล์และใช้งานได้ ขอขอบคุณสำหรับความช่วยเหลือของคุณ!
ErocM
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.