كيفية تنزيل مجلد بشكل متكرر عبر FTP على Linux [مغلق]

StackOverflow https://stackoverflow.com/questions/113886

  •  02-07-2019
  •  | 
  •  

سؤال

أحاول نقل مجلد إلى بروتوكول نقل الملفات باستخدام عميل سطر الأوامر ftp، ولكن حتى الآن لم أتمكن إلا من استخدام "get" للحصول على ملفات فردية.

هل كانت مفيدة؟

المحلول

يمكنك الاعتماد على wget الذي يتعامل عادةً مع بروتوكول نقل الملفات بشكل صحيح (على الأقل في تجربتي الخاصة).على سبيل المثال:

wget -r ftp://user:pass@server.com/

تستطيع ايضا استخذام -m وهو مناسب للنسخ المتطابق.وهو يعادل حاليا -r -N -l inf.

إذا كانت لديك بعض الأحرف الخاصة في تفاصيل بيانات الاعتماد، فيمكنك تحديد --user و --password الحجج للحصول على العمل.مثال لتسجيل الدخول المخصص بأحرف محددة:

wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/

يحرركما أشار @asmaier، انتبه لذلك حتى لو -r بالنسبة للتكرار، فهو يحتوي على مستوى أقصى افتراضي قدره 5:

       -r
       --recursive
           Turn on recursive retrieving.

       -l depth
       --level=depth
           Specify recursion maximum depth level depth.  The default maximum depth is 5.

إذا كنت لا تريد تفويت الأدلة الفرعية، فمن الأفضل استخدام خيار النسخ المتطابق، -m:

       -m
       --mirror
           Turn on options suitable for mirroring.  This option turns on recursion and time-stamping, sets infinite
           recursion depth and keeps FTP directory listings.  It is currently equivalent to -r -N -l inf
           --no-remove-listing.

نصائح أخرى

فقط لاستكمال الإجابة التي قدمها تيبو بارير.

إستعملت

wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory

لاحظ الشرطة المائلة المزدوجة بعد اسم الخادم.إذا لم أضع شرطة مائلة إضافية، فسيكون المسار مرتبطًا بالدليل الرئيسي للمستخدم.

  • -nH يتجنب إنشاء دليل يحمل اسم الخادم
  • -nc يتجنب إنشاء ملف جديد إذا كان موجودًا بالفعل في الوجهة (تم تخطيه للتو)
  • --cut-dirs=5 يسمح لي بأخذ محتوى /absolute/path/to/directory ووضعه في الدليل حيث أقوم بتشغيل wget.يتم استخدام الرقم 5 لتصفية المكونات الخمسة للمسار.الشرطة المائلة المزدوجة تعني مكونًا إضافيًا.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory

لو lftp مثبت على جهازك، استخدم mirror dir.وقد انتهيت.راجع تعليق Ciro أدناه إذا كنت تريد تنزيل الدليل بشكل متكرر.

إذا كنت تستطيع استخدام scp بدلاً من ftp, ، ال -r الخيار سوف يفعل هذا لك.سأتحقق لمعرفة ما إذا كان يمكنك استخدام آلية نقل ملفات أكثر حداثة من FTP.

استخدم WGet بدلاً من ذلك.وهو يدعم بروتوكولات HTTP وFTP.

wget -r ftp://mydomain.com/mystuff

حظ سعيد!

مرجع: http://linux.about.com/od/commands/l/blcmdl1_wget.htm

يوجد "ncftp" وهو متاح للتثبيت في نظام التشغيل Linux.يعمل هذا على بروتوكول FTP ويمكن استخدامه لتنزيل الملفات والمجلدات بشكل متكرر.يعمل على لينكس.تم استخدامه ويعمل بشكل جيد لنقل المجلدات/الملفات بشكل متكرر.

تحقق من هذا الرابط... http://www.ncftp.com/

إذا كنت تستطيع، أقترح عليك بشدة tar و bzip (أو gzip, ، أيًا كان ما يطفو على قاربك) الدليل الموجود على الجهاز البعيد - بالنسبة لدليل بأي حجم كبير، فمن المحتمل أن يكون توفير النطاق الترددي يستحق الوقت اللازم لضغطه/فك ضغطه.

إذا كنت تريد الالتزام بسطر الأوامر FTP، فيجب عليك تجربة NcFTP.ثم يمكنك استخدام get -R للحصول على مجلد بشكل متكرر.سوف تحصل أيضا على الانتهاء.

wget -r ftp://url

العمل بشكل مثالي مع Redhat وUbuntu

يجب أن لا تستخدم ftp.يحب telnet ولا يستخدم بروتوكولات آمنة، ويتم نقل كلمات المرور بنص واضح.وهذا يجعل من السهل جدًا على الجهات الخارجية الحصول على اسم المستخدم وكلمة المرور الخاصة بك.

لنسخ الدلائل البعيدة عن بعد، هذه الخيارات هي الأفضل:

  • rsync هي الأداة الأنسب إذا كان بإمكانك تسجيل الدخول عبر ssh, لأنه ينسخ الاختلافات فقط، ويمكن إعادة تشغيله بسهولة في المنتصف في حالة انقطاع الاتصال.

  • ssh -r هو الخيار الثاني الأفضل لنسخ بنيات الدليل بشكل متكرر.

يرى:

  • rsync صفحة الرجل

  • سش صفحة الرجل

تبديل المطالبة عن طريق الأمر PROMPT.

الاستخدام:

ftp>cd /to/directory    
ftp>prompt    
ftp>mget  *
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top