سؤال باستخدام wget بشكل متكرر لتنزيل دلائل FTP كاملة


أريد نسخ جميع الملفات والمجلدات من مضيف إلى آخر. الملفات الموجودة على المضيف القديم تجلس في / var / www / html ولدي فقط وصول FTP إلى ذلك الخادم ، ولا يمكنني TAR كافة الملفات. اتصال منتظم إلى المضيف القديم عبر FTP يقودني إلى المجلد / home / admin.

حاولت تشغيل نموذج الأمر التالي خادمي الجديد:

wget -r ftp://username:password@ip.of.old.host

ولكن كل ما أحصل عليه هو ملف index.html مكون.

ما بناء الجملة الصحيح لاستخدام wget بشكل متكرر على FTP؟


87
2018-06-13 09:21


الأصل


لاحظ أنه بشكل افتراضي ، يكون wget -r أقصى عمق للتكرار هو 5 ؛ إذا كان لديك أدلة فرعية أكثر عمقا ، سيتم تجاهلها إلا إذا قمت بتغيير هذا (انظر -l في صفحة الرجل). - mikewaters


الأجوبة:


محاولة -m إلى عن على --mirror

wget -m ftp://username:password@ip.of.old.host

119
2018-06-13 10:04



لأسباب أمنية ، سيكون من الجيد استخدام --ask-password لتجنب حفظ كلمة المرور history. - checksum
هذا رائع جدا. عملت مثل السحر .. - Sambhav Sharma
يجب أن يكون هذا هو الجواب المقبول (لتحسين الرؤية). - bgondy
أنها لا تشمل مسار الدليل لتحميل ، أعتقد أن الإجابة عن Formoda أفضل - Wasim A.


لديك الحق ، فأنت تحتاج فقط إلى زائدة * في النهاية:

wget -r ftp://username:password@1.2.3.4/dir/*

بالنسبة إلى الخوادم المشتركة ، يمكنك استخدام ما يلي:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

نظرًا لأن معظم الخوادم المشتركة لديها اسم ftp-username شيء مثل اسم المستخدم @ hostname ، لذا ، لا يعمل أمر wget الأول ، ويعمل الأمر الثاني بشكل جيد.


36
2018-06-22 12:35



هذا من شأنه أن يذهب واحد فقط عميقة. يفضل استخدام العلم -m - SvennD
في بعض الحالات لا يعمل الأمر الثاني بسبب المساحة ، يمكنك استخدام الأمر الأول لاستضافة المشاركة مثل هذا. ** wget -r ftp: / / username٪ 40host: password @ host / dir / ** - Wasim A.
ملاحظة: يجب عليك استخدام إما -m أو -r -l inf لأن -r لديه عمق العودية الافتراضي من 5. انظر gnu.org/software/wget/manual/... - ndemou


الى جانب wget ، يمكنك أيضا استخدام LFTP في وضع البرنامج النصي. سوف يعكس الأمر التالي محتوى دليل FTP المعطى عن بعد في الدليل المحلي المحدد ، ويمكن وضعه في مهمة cron:

lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'

يتعامل تلقائياً مع العودية في الدلائل ويسمح بتحديد دليل بدء تشغيل المصدر البعيد لتنزيل البيانات من.


6
2018-06-13 18:04





يمكنك استخدام "curlftpfs - تركيب مضيف بروتوكول نقل الملفات (ftp) كدليل محلي" ، وبمجرد تحميله ، يمكنك استخدام أدوات الملفات العادية مثل "cp -r".


5
2018-06-13 21:22



curlftpfs لديه مشاكل الأداء الرئيسية في الوقت الحالي إلا إذا قمت بالرجوع إلى إصدار سابق libcurl3-gnutls - Hengjie


تحقق من الأمر wget أدناه لتنزيل البيانات من FTP بشكل متكرر.

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r: هو للتنزيل بشكل متكرر.

-np: هو عدم وجود الوالد تصاعدي.

-nH: هو تعطيل إنشاء دليل له اسم مماثل لعنوان URL ، مثل: abc.xyz.com

--cut-dirs: هو لتجاهل عدد من الدلائل الأم. ستختلف قيمة هذا الخيار لأمرك.

يمكنك التحقق من خلال تنفيذ الأمر أعلاه.


4
2017-07-24 04:48





استخدم -m بدلاً من -r ، نظرًا لعمق العودية.

http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11


3
2018-06-17 11:56





يجب أن تحاول العمل:

wget -r ftp://ftp:ftp@ftp.sunet.se/tst/

2
2018-06-13 09:54