שאלה באמצעות 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 יש עומק recursion מקסימלי של 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
זה לא כולל נתיב הספרייה להוריד, אני מניח תשובה @ פורמודה היא טובה יותר - 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 כמו שם משתמש @ 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 יש עומק recursion ברירת המחדל של 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'

זה אוטומטית מטפל recursion לתוך ספריות ומאפשר ציון המקור מרחוק מקור במדריך מ להוריד נתונים מ.


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: האם להשבית יצירה של ספרייה בעלת שם זהה לכתובת האתר, לדוגמה, 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





להשתמש:

wget -m ftp://192.168.0.1

והוא ישקף את כל הקבצים והתיקיות.


2
2018-06-13 14:07



כפי שאמרתי, כניסה דרך FTP לוקח אותי אל / home / תיקיית מנהל, ואת הקבצים שאני צריך נמצאים / var / www / html אז כשאני מפעיל את הפקודה שהצעת, אני מקבל רק את התוכן של / home / admin ניסיתי להפעיל אותו 192.168.0.1/var/www/html, אבל אז הוא מנסה CWD / home / admin / var / www / html. כיצד ניתן להפוך אותו לתיקיה זו מהשורש?
אין לי ניסיון עם בעיה מסוימת זו, אבל אתה יכול לנסות לעשות קישור אל / var / www / html תחת הבית שלך. אז אתה יכול להשתמש בכתובת כמו 192.168.0.1/html - prestomation
ניסיתי ליצור קישור, אבל זה הביא עם wget יצירת קישור דומה על מקומי.


זה התחביר הנכון. לא בטוח למה אתה לא מקבל את התוצאות הצפויות.

כמו תמיד יש יותר מדרך אחת לעשות את זה. נסה ncftp, ובמיוחד ncftpget


1
2018-06-13 09:27



אני לא יכול להתקין תוכנות נוספות בשרת החדש שלי. אני לא צריך לספר wget להוריד את כל הקבצים מ / var / www / html? ניסיתי wget -r שם משתמש: password@ip.of.old.host/var/www/html אבל יש לי במדריך לא נמצא שגיאה.


אני יכול להבין אם אתה מנסה לזרוק את זה לתוך cron או משהו, אבל למה לא פשוט FTP לתוך השרת עם הלקוח הרגיל שלך mget *? זה עשוי להיות מסלול מהיר יותר להצלחה.


1
2018-06-13 13:37



ניסיתי mget * אבל זה לא עובד עם תיקיות משנה, אומר את התיקייה המקומית משנה לא קיים. האם יש דרך לגרום לו ליצור את התיקיות המקומיות באופן אוטומטי?
בהתאם הלקוח שלך, בורר -R בדרך כלל עושה את הטריק. IE: mget -r * - dr.pooter
מממ. תקן AFAIK לקוח FTP ב לינוקס לא נועד לאחזר ספריות רקורסיבית. זאת אומרת - אין אופציה. לקוחות אחרים כמו ncftp או lftp תמיכה אחזור רקורסיבי אבל הם בדרך כלל לא זמין כברירת מחדל. - Stann