كيفية تنزيل مجلد بشكل متكرر عبر FTP على Linux [مغلق]
-
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
حظ سعيد!
يوجد "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
هو الخيار الثاني الأفضل لنسخ بنيات الدليل بشكل متكرر.
يرى:
تبديل المطالبة عن طريق الأمر PROMPT.
الاستخدام:
ftp>cd /to/directory
ftp>prompt
ftp>mget *