lftp: เข้าสู่ระบบใส่ไฟล์ใน dir ระยะไกลและออกในคำสั่งเดียว: ความช่วยเหลือในการอ้างอิงที่เหมาะสม


17

ฉันต้องการใช้lftp -cในการทำเซสชั่นทั้งหมดในครั้งเดียว (เพราะฉันจะเปิดตัวจากสคริปต์ในภายหลัง) และฉันจัดการด้วย-eแต่ ofc ทำให้ฉันด้วยเซสชั่นแบบโต้ตอบที่ฉันไม่ต้องการ

คู่มือการใช้

-c commands
          Execute the given commands and exit. Commands can be separated with a semicolon,  `&&'
          or  `||'.  Remember to quote the commands argument properly in the shell.  This option
          must be used alone without other arguments.

แต่ฉันไม่เข้าใจว่าฉันควรอ้างอิงและรวมคำสั่ง / การโต้ตอบเข้าด้วยกันอย่างถูกต้องอย่างไร

lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com ใช้งานได้ดี แต่ฉันต้องการออกหลังจากรันคำสั่ง;

lftp -c "open -u user,pass ftpsite.com" || put -O "remote/dir/ /local/file.txt" เพียงแค่ตะโกนใส่ฉันหรืออันที่จริงแล้วการผสมผสานของคำพูดใด ๆ ที่ฉันได้ลอง ( ||หรือ&&ไม่ก็ได้)


เพียงแค่เพิ่มเลิกหรือลาก่อน :)
meso_2600

คำตอบ:


28
$ lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt" 

ควรทำมัน

หากวิธีนี้ใช้ไม่ได้ให้ลองเพิ่ม/etc/lftp.confในบรรทัดต่อไปนี้ของคุณ:

set ftp:ssl-protect-data true
set ftp:ssl-force true
set ftp:ssl-auth TLS
set ssl:verify-certificate no

2
มีอย่างไรก็ตามในการทำงานนี้ถ้ารหัสผ่านมีตัวอักษรอยู่ในนั้น' " : ;
Pete

ผมสะดุดขึ้นเพราะผมมีพื้นที่หลังจากนั้นจุลภาคแรกเมื่อฉันคิดว่าออกการทำงานที่ดี
แพทริก


1

lftp -e "put -O remote/dir/ /local/file.txt; bye" ftp.yourhost.com

และใส่ข้อมูลประจำตัวของคุณภายใต้ ~ / .netrc เช่น

machine ftp.yourhost.com login your_username password your_password

การใส่รหัสผ่านใน cli นั้นไม่ต้องดำเนินการอย่างแน่นอนเนื่องจากรหัสเหล่านั้นสามารถอ่านได้แม้กระทั่งเมื่อใช้ ps -aux ในระหว่างการอัพโหลด .. นอกจากประวัติ bash แล้ว

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