2011-09-03 8 views
5

Natknąłem się na opcję "--delete-after", kiedy czytałem stronę wget? jaki jest cel udostępnienia takiej opcji? Czy to tylko do sprawdzenia, czy strona jest w porządku do pobrania? A może są inne sytuacje, w których ta opcja jest przydatna, mam nadzieję, że możecie mi dać wskazówki.jaki jest cel opcji "--delete-after" w wget?

+2

Ze strony podręcznika wget - "Jest to przydatne do wstępnego pobierania popularnych stron za pośrednictwem serwera proxy, np .:' wget -r -nd --delete-after http: // whatever.com/~ popularne/strona/'" . Może być również używany do uruchamiania regularnych skryptów konserwacyjnych uruchamianych w niektórych systemach, gdzie nie ma takich rzeczy jak cron. Skrypty, które tak naprawdę nie produkują żadnych wyników, ale są wywoływane, aby wykonać kwanty pracy. – arunkumar

+0

Zobacz także '--spider', który czasami może być użyty do osiągnięcia tego samego rezultatu. –

+0

@arunkumar, rozumiem jego przydatność w buforowaniu dla innych za tym samym proxy. Czy możesz wyjaśnić, w jaki sposób uruchamiać regularnie skrypty konserwacyjne? – yorua007

Odpowiedz

4

W odniesieniu do powyższych komentarzy. Podam kilka przykładów, jak z niego korzystamy. Mamy kilka stron internetowych działających w Rackspace Cloud Sites, które są rozwiązaniem zarządzanego hostingu w chmurze. Nie mamy dostępu do zwykłego crona.

Wystąpił problem z niekontrolowanym użyciem witryny korzystającej z WordPressa, ponieważ WP nadal wywoływała wp-cron.php. Aby dać ci poczucie niekontrolowanego użycia, zużyto w ciągu jednego dnia przydzielone cykle procesora na miesiąc. W każdym razie to, co zrobiłem, to wyłączenie wp-cron.php w systemie WordPress i ręczne wywołanie go przez wget. Nie interesuje mnie wynik procesu, więc jeśli nie używam --delete-after z wget (wget ... > /dev/null 2>&1 również działa), to folder, w którym działają wget, zostanie wypełniony setkami bezużytecznych logów i danych wyjściowych za każdym razem, gdy skrypt został wywołany.

Mamy również zainstalowany SugarCRM, a ten system wymaga wywoływania skryptu cron do obsługi systemu. Używamy również cicho wget. Zasadniczo wiele takich systemów internetowych ma skrypty cron. Jeśli nie możesz wywołać swoich skryptów bezpośrednio, używając php na komputerze, to druga opcja wywołuje je po cichu za pomocą wget.

Komenda nazwać te skrypty crona jest dość proste - wget --delete-after http://example.com/cron.php?parameters=if+needed

+0

Kiedy można powiedzieć --delete-after jest odpowiedni w porównaniu do --spider? – Paolo

+0

@Paolo, gdy potrzebujesz wywołać określoną akcję na serwerze, wykonując POST lub GET, ale wtedy nie potrzebujesz wyjścia, wtedy '--delete-after' jest w porządku. '--spider' po prostu sprawdza plik istnienia i nie może być użyty do wykonania żądania POST. – arunkumar

0

Można go użyć do testowania, czy strona ładuje się poprawnie, ale zwykle służy do wymuszenia na serwerach proxy buforowania ich zawartości.

Jeśli siedzisz na połączeniu, gdzie jest urządzenie sieciowe buforujące zawartość między witryną a punktem końcowym, a masz witrynę, która jest popularna wśród użytkowników w tej sieci, to możesz chcieć zrobić to jako sysadmin, to używaj maszyny niższego poziomu zaraz za serwerem proxy do skryptowania rekursywnej operacji "-r" lub zwierciadlanej "-m" wget.

Urządzenie proxy zobaczy to i wstępnie buforuje witrynę i jej zasoby, dzięki czemu witryna uzyskuje dostęp do zastosowań po tym proxy nieco szybciej.

Będziesz wtedy chciał podać "--delete-after", aby zwolnić miejsce na dysku, chyba że chcesz zachować lokalną kopię wszystkich witryn, które wymusisz na buforowanie.

1

Używam wget (z cronem) do automatyzacji poleceń do aplikacji internetowej, więc nie interesuje mnie zawartość stron. --delete-after jest idealny do tego.

0

Czasami trzeba tylko odwiedzić stronę internetową, aby ustawić adres IP - powiedzieć, jeśli toczą swoją usługę dyn dns.