Soru Tüm FTP dizinlerini art arda indirmek için wget kullanma


Tüm dosya ve klasörleri bir ana bilgisayardan diğerine kopyalamak istiyorum. Eski ana bilgisayardaki dosyalar / var / www / html adresinde yer alıyor ve ben sadece bu sunucuya FTP erişimi var ve tüm dosyaları TAR yapamam. FTP ile eski ana bilgisayara düzenli olarak bağlandığımda, bana / home / admin klasörüne ulaşıyor.

Yeni sunucuya aşağıdaki komut formunu çalıştırmayı denedim:

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

Ama tek elde ettiğim bir index.html dosyası oluşturdu.

Wget'ı FTP üzerinden tekrar tekrar kullanmak için doğru sözdizimi nedir?


87
2018-06-13 09:21


Menşei


Varsayılan olarak, wget -r'nin maksimum yineleme derinliğine 5 sahip olduğunu unutmayın; Eğer daha derin bir alt dizininiz varsa, bunu değiştirmezseniz göz ardı edilecektir (bkz. -l man sayfasında). - mikewaters


Cevaplar:


Deneyin -m için --mirror

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

119
2018-06-13 10:04



Güvenlik nedeniyle, kullanmak iyi olurdu --ask-password Parolada saklanmaktan kaçınmak için history. - checksum
Bu çok havalı. Bir çekicilik gibi çalıştı .. - Sambhav Sharma
Bu kabul edilen cevap olmalıdır (daha iyi görünürlük için). - bgondy
indirmek için dizin yolunu içermez, @Formoda cevabı daha iyidir - Wasim A.


Haklısın, sonunda sadece bir izlemeye * ihtiyacın var:

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

Paylaşılan sunucular için şu şekilde kullanabilirsiniz:

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

Çoğu paylaşılan sunucu ftp-kullanıcı adı, username @ hostname gibi bir şey olduğu için, ilk wget komutu işe yaramaz ve ikinci komut düzgün çalışır.


36
2018-06-22 12:35



Bu sadece bir dizin derin olur. -M bayrağı kullanmak için - SvennD
Bazı durumlarda ikinci komut alan nedeniyle çalışmıyor, böyle paylaşım barındırma için ilk komutu kullanabilirsiniz. ** wget -r ftp: / / kullanıcı adı% 40host: şifre @ host / dir / ** - Wasim A.
Not: ya da -m veya -r -l inf çünkü -r'nin varsayılan yineleme derinliği 5'dir. Bkz. gnu.org/software/wget/manual/... - ndemou


Wget'in yanı sıra, ayrıca lftp komut modunda. Aşağıdaki komut verilen bir uzak FTP dizininin içeriğini verilen yerel dizine yansıtacaktır ve bu, cron işine yerleştirilebilir:

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

Otomatik olarak yinelemeyi dizinlere işler ve uzak kaynak başlangıç ​​dizininin veriyi indirmesini belirtir.


6
2018-06-13 18:04





'Curlftpfs - bir ftp ana bilgisayarını yerel bir dizin olarak mount edebilirsiniz' ve bir kez monte edildiğinde, 'cp -r' gibi normal dosya araçlarını kullanabilirsiniz.


5
2018-06-13 21:22



curlftpfs downgrade olmadıkça şu anda büyük performans sorunları var libcurl3-gnutls - Hengjie


FTP'yi tekrarlı olarak veri indirmek için aşağıdaki wget komutunu kontrol edin.

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

-r: Yinelemeli olarak indirmek içindir.

-np: Yükselen ebeveynler için değil.

-nH: URL ile aynı adı taşıyan dizinin oluşturulmasının devre dışı bırakılması içindir, yani abc.xyz.com

--cut-dirs: Ana dizinlerin sayısını görmezden gelmek içindir. Bu seçeneğin değeri, komutunuz için farklılık gösterecektir.

Yukarıdaki komutu çalıştırarak kontrol edebilirsiniz.


4
2017-07-24 04:48





Yineleme derinliği nedeniyle -m yerine -m kullanın.

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


3
2018-06-17 11:56





Çalışmalısın:

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

2
2018-06-13 09:54