سؤال كيفية تحميل ملف واحد عن طريق بروتوكول نقل الملفات من سطر الأوامر؟


أحتاج إلى تحميل ملف واحد إلى خادم FTP من Ubuntu. يجب أن تتم هذه العملية في برنامج نصي (في الوضع غير التبادلي). ما هي الصيغة الصحيحة ل ftp؟

أحاول هذا ، ولكن دون جدوى:

$ ftp -u ftp://user:secret@ftp.example.com my-local-file.txt
ftp: Invalid URL `ftp://'

102
2017-08-15 01:40


الأصل


كيف أقوم بصفحة رجل؟ - Ignacio Vazquez-Abrams
لا اعرف الكثير عن ftp أداة في أوبونتو ، ولكن يبدو أنها اختناق على ftp://. حاول اخراج ذلك ربما؟ - Nate Koppenhaver
@ IgnacioVazquez-أبرامز man ftp في سطر الأوامر - c.gutierrez
مماثل: Syncronizing الملفات عبر بروتوكول نقل الملفات، ولكن لملفات متعددة. - kenorb
أنا أتلقى "-U خيارًا غير معروف". - Robert Reiz


الأجوبة:


هنا هو نهج واحد:

$ ftp -n <<EOF
open ftp.example.com
user user secret
put my-local-file.txt
EOF

بدلاً من ذلك ، قم بإنشاء (أو تحرير) ملف ~ / .netrc في المنزل الرئيسي للمستخدم الذي سيقوم بتشغيل الأمر ftp ، منحه الأذونات المناسبة (chmod 0600 ~/.netrc) ، وأضف ما يلي:

# ~/.netrc
machine ftp.example.com
login user
password secret

ثم احذف معلومات تسجيل الدخول ، كما في:

$ echo put my-local-file.txt | ftp ftp.example.com

أيضا ، هنا كيف يمكن أن تفعل الشيء نفسه باستخدام حليقة:

$ curl -T my-local-file.txt ftp://ftp.example.com --user user:secret

162
2017-08-15 04:39



واو ، لم أكن أعرف curl يدعم بروتوكول نقل الملفات! انها فائقة سهل. - Sébastien
+1 لل curl حل. لماذا حتى عناء مع الآخر؟ - Asaph
Asaph لأنه لم يتم تثبيت حليقة حيث أحتاج إلى القيام بذلك ، لذلك جاء الحل الآخر في متناول اليدين. شكر. - bobef
+1 للتجعيد. مرتبة ونظيفة ومباشرة إلى النقطة! في Debian / Ubuntu "apt-get install curl" ، إذا لم يكن لديك. - GTodorov
ال curl الحل هو الأفضل والأسهل


يمكنني أن أوصي ftp-upload. انها أداة صغيرة نظيفة يمكنك تثبيتها تحت أوبونتو من خلال sudo apt-get install ftp-upload.

مثال على الاستخدام:

ftp-upload -h {HOST} -u {USERNAME} --password {PASSWORD} -d {SERVER_DIRECTORY} {FILE_TO_UPLOAD}

13
2018-01-27 15:52



هل يمكنك تقديم رابط للأداة أو وثائقها؟ - bwDraco
مرحبا DragonLord ، إذا كنت في أوبونتو وقمت بتثبيت ftp-upload (باستخدام الأمر الذي قدمته من قبل) يمكنك القيام به فقط man ftp-upload. امل ان يساعد. - Floris


يجب عليك إصلاح عنوان URL الوارد في كشفك. لقد تلقيت الخطأ نظرًا لعدم اكتمال عنوان URL - فقد كان اسم الكائن الذي تحمّله غير موجود. بمجرد إضافة اسم الملف بعد "example.com" كما فعلت أدناه ، سترى الأمر الفردي يعمل بالفعل كما قصدت.

جرب هذا:

ftp -u بروتوكول نقل الملفات: // المستخدم: secret@ftp.example.com/my-local-file.txt my-local-file.txt


5
2017-12-02 19:59



ftp: خيار غير صالح - "u" - Babken Vardanyan
في الواقع :( ftp: u: خيار غير معروف - webDEVILopers
ftp: u: خيار غير معروف - Morten


قم بتثبيت ncftp واستخدم ncftpput الأداة التي تأتي معها ، إلى حد كبير شيء مثل هذا النحو:

ncftpput -u ftpuser -p ftppass ftphostname /path/where/to/upload localfile.name
if [ $? -ne 0 ]; then echo "Upload failed"; fi

يمكنك أيضًا التحقق مما إذا كانت حالة التحميل جيدة أم سيئة. يمكن أيضًا استخدام عميل ftp العادي مع توقع حدوث ذلك.


4
2017-08-15 04:37





يمكنك أيضا المحاولة lftp.

هنا مثال:

lftp -e 'cd folder1/folder2; put /home/path/yourfile.tar; bye' -u user,password ftp.theserver.com

الرجوع هنا ل المزيد من التفاصيل

.


2
2018-01-10 09:06





قم بتحميل ملف إلى موقع بعيد عن طريق سطر الأوامر

#!/bin/bash
#$1 is the file name
#usage:this_script <filename>
HOST='yourhost'
USER="youruser"
PASSWD="pass"
FILE="abc.php"
REMOTEPATH='/html'

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
put $FILE 
quit
END_SCRIPT
exit 0

2
2018-04-29 07:48





أنا استخدم BusyBox ftpput لفعل هذا:

# /bin/busybox ftpput

BusyBox v1.20.2 (Debian 1:1.20.0-7) multi-call binary.

Usage: ftpput [OPTIONS] HOST [REMOTE_FILE] LOCAL_FILE

Upload a file to a FTP server

    -v,--verbose            Verbose
    -u,--username USER      Username
    -p,--password PASS      Password
    -P,--port NUM           Port

ملحوظة: busybox ftpget تعمل جيدا أيضا.


1
2018-02-16 17:47