2012-05-23 8 views
5

Chciałbym odzwierciedlić prosty chroniony hasłem portal internetowy dla niektórych danych, które chciałbym zachować na bieżąco w postaci kopii zapasowej &. Zasadniczo ta strona to tylko lista katalogów z danymi zorganizowanymi w foldery & Nie obchodzi mnie utrzymanie plików HTML & innych elementów formatowania. Jednak istnieje kilka ogromnych typów plików, które są zbyt duże, aby je pobrać, więc chcę je zignorować.witryna lustrzana http, z wyłączeniem niektórych plików

Flaga prawie robi to, co chcę, z wyjątkiem tego, że wszystkie pliki zostaną pobrane, a jeśli pasują do flagi -R, zostaną usunięte.

Oto jak używam wget:

wget --http-user userName --http-password password -R index.html,*tiff,*bam,*bai -m http://web.server.org/ 

który wytwarza moc takiego, potwierdzając, że wykluczony plik (index.html) (a) zostanie pobrana, oraz (b) następnie zostanie usunięty:

...
--2012-05-23 09: 38: 38-- http://web.server.org/folder/
Ponowne użycie istniejącego połączenia web.server.org:80.
Żądanie HTTP wysłane, oczekiwanie na odpowiedź ... Wymagane jest zezwolenie
Ponowne użycie istniejącego połączenia z web.server.org:80.
żądania HTTP wysłano, oczekiwanie na odpowiedź ... 200 OK
Długość: 2677 (2.6K) [text/html]
Zapisywanie do: `web.server.org/folder/index.html” 100% [= ================================================== ================================================== =================>] 2 677 -. K/s w 0 s

Brakuje ostatnio zmodyfikowanego nagłówka - znaczniki czasu są wyłączone.
2012-05-23 09:38:39 (328 Mb/s) - `web.server.org/folder/index.html” zostawiony [2677/2677]

Usuwanie web.server.org/folder /index.html, ponieważ powinno zostać odrzucone.

...

czy istnieje sposób, aby wymusić wget odrzucić plik przed pobraniem?
Czy istnieje alternatywa, którą powinienem wziąć pod uwagę?

Ponadto, dlaczego otrzymuję błąd 401 Authorization Required dla każdego pobranego pliku, pomimo podania nazwy użytkownika & hasło. To tak, jakby za każdym razem próbował połączyć się z nieuwierzytelnionym przed próbą nazwy użytkownika/hasła.

dzięki, Mark

+0

See rozwiązanie dotyczące modyfikowania wget z tego (zduplikowanego) pytania: http://stackoverflow.com/questions/12704197/wget-reject-still-downloads-file – taranaki

Odpowiedz

4

Pavuk (http://www.pavuk.org) wyglądał jak obiecująca alternatywa, która pozwala na odbijanie stron internetowych, z wyjątkiem plików opartych na wzorcach URL i rozszerzeniach nazw plików ... ale pavuk 0.9.35 seg-faults/umiera losowo w środku długich transferów & nie wydaje się być aktywnie rozwijany (ta wersja została zbudowana listopada 2008).

FYI, oto jak używałem go:
pavuk -mode mirror -force_reget -preserve_time -progress -Robots -auth_scheme 3 -auth_name x -auth_passwd x -dsfx 'html,bam,bai,tiff,jpg' -dont_leave_site -remove_old -cdir /path/to/root -subdir /path/to/root -skip_url_pattern ’*icons*’ -skip_url_pattern '*styles*' -skip_url_pattern '*images*' -skip_url_pattern '*bam*' -skip_url_pattern '*solidstats*' http://web.server.org/folder 2>&1 | tee pavuk- datę .log

w końcu wget --exclude-directories wystarczyły:

wget --mirror --continue --progress=dot:mega --no-parent \ 
--no-host-directories --cut-dirs=1 \ 
--http-user x --http-password x \ 
--exclude-directories='folder/*/folder_containing_large_data*' --reject "index.html*" \ 
--directory-prefix /path/to/local/mirror 
http://my.server.org/folder 

Od --exclude-directories symboli wieloznacznych nie rozpiętość '/', musisz dość dokładnie formować zapytania, aby uniknąć pobierania całych folderów.

Mark

0

wget -X directory_to_exclude [, other_directory_to_exclude] -r ftp://URL_ftp_server

 
SERVER 
    |-logs 
    |-etc 
    |-cache 
    |-public_html 
     |-images 
     |-videos (want to exclude) 
     |-files 
     |-audio (want to exclude) 

wget -X/public_html/wideo,/public_html/audio ftp: serwer/public_html/*