การเชื่อมต่อ FTP ผ่านบรรทัดคำสั่ง Linux


4

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

ฉันจะอัพโหลดไฟล์ที่ให้ข้อมูลนี้ได้อย่างไร

โปรดทราบว่าฉันต้องทำสิ่งนี้จากสคริปต์ดังนั้นฉันจึงจำเป็นต้องป้อนข้อมูลนี้โดยอัตโนมัติ


1
เริ่มอ่าน ftp หน้าคน ?
NicM

2
ftp สิ่งที่ต้องทำคือหนึ่งไคลเอ็นต์ FTP อื่น ๆ อาจเหมาะสมกว่าขึ้นอยู่กับสิ่งที่ผู้ใช้ต้องการ เพียงเชื่อมโยงไปยังหน้าคนไม่ได้เป็นประโยชน์อย่างแน่นอน
Daniel Beck

คำตอบ:


6

มีไคลเอนต์ CLI (บรรทัดคำสั่ง) มากมาย ที่พบบ่อยที่สุดคือ ftp. คุณได้ <host>, <port>, <username>, <pass> และ "โหมดพาสซีฟ" การใช้ ftp คุณควรทำ:

ftp -p <host> <port>

-p สวิตช์หมายถึง "ใช้โหมดพาสซีฟ" จากนั้นคุณจะถูกถามเกี่ยวกับชื่อผู้ใช้และรหัสผ่านของคุณ หลังจากล็อกอินสำเร็จ (เซิร์ฟเวอร์แจ้งให้คุณทราบ) คุณสามารถให้คำสั่งบางอย่าง ชนิด help และกด "Enter" เพื่อรับรายการคำสั่งที่ใช้ได้ คุณสามารถใช้เช่น cd, ls, mkdir คำสั่ง ftp เพื่อเปลี่ยนไดเรกทอรีทำงาน (บนเซิร์ฟเวอร์), รายการเนื้อหาและสร้างไดเรกทอรีใหม่ ถ้าก่อนจะวิ่ง ftp คุณอยู่ในไดเรกทอรีเดียวกับไฟล์ที่คุณต้องการส่งคุณสามารถใช้ put หรือ mput คำสั่งเพื่อเริ่มการถ่ายโอนจริง คำสั่งแรกส่งไฟล์เดียวไฟล์ที่สองหลายไฟล์โดยใช้ globbing (เช่น mput *pdf จะส่งไฟล์ PDF ทั้งหมดในไดเรกทอรีปัจจุบัน) เพื่อรับความช่วยเหลืออย่างง่ายเกี่ยวกับคำสั่งคุณสามารถใช้ help <command> จากภายใน ftp แอป ฉันจะบอกว่าเพียงพอสำหรับการเริ่ม สำหรับการใช้งานที่เหลือ man ftp หรือ info ftp. หากต้องการสิ้นสุดประเภทเซสชัน ftp bye. มีวิธีอื่น ๆ ที่จะทำเช่นนั้น แต่ฉันคิดว่าอันนี้สง่างาม :)

สำหรับลูกค้าอื่น ๆ มีตัวเลือกที่น่าสนใจบางอย่างชี้ไปที่นี่ แต่โดยส่วนตัวแล้วฉันใช้ lftp. มันเป็นเพียงแค่ไคลเอนต์ ftp ดียืดหยุ่นและใช้งานง่าย หากคุณต้องการวิธีการมองเห็นที่ชัดเจนยิ่งขึ้นขณะที่ยังคงอยู่ภายใต้บรรทัดคำสั่ง mc หรือ "คำสั่ง Midnight" เป็นตัวจัดการไฟล์แอปพลิเคชันทั่วไปที่ใช้กระบวนทัศน์ของนอร์ตันผู้บัญชาการ แต่สามารถใช้เพื่อเข้าถึงเซิร์ฟเวอร์ ftp



2

ไม่มีปัญหากับอันนี้ มีตัวอย่างมากมาย ส่วนสำคัญ . เพียงไปที่ไซต์นั้นและค้นหา "FTP Script"

นี่คือสิ่งที่ฉันพบ:

#!/bin/sh

HOST='some.ftp.server'
USER='myuser'
PASSWD='mypass'
FILE='myfile'

ftp -n $HOST <<END_SCRIPT
user ${USER} ${PASSWD}
cd /path/to/something
get $FILE
quit
END_SCRIPT

exit 0

นอกจากนี้ Command Line Foo เป็นอีกหนึ่งเว็บไซต์ที่ดีที่ฉันได้พบตัวอย่างที่ยอดเยี่ยมของการถ่ายโอนไฟล์ ftp-ish

Create a file server, listening in port 7000:

while true; do nc -l 7000 | tar -xvf -; done

Then, at client side:

tar c myfile | nc localhost 7000 ##Send file myfile to server
tar c mydir | nc localhost 7000 ## Send directory mydir to server

มีการระบุโหมดแฝงอย่างไร มันเป็นสิ่งสำคัญสำหรับเว็บไซต์ FTP จำนวนมาก
Peter Mortensen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.