Chciałbym pobrać strony internetowe podczas dostarczania adresów URL ze standardowego wejścia. Zasadniczo jeden proces ciągle generuje adresy URL do stdout/file i chcę je potokować wget lub curl. (Pomyśl o tym, jako prostym robocie indeksującym, jeśli chcesz).wget lub curl ze stdin
To wydaje się działać prawidłowo:
tail 1.log | wget -i - -O - -q
Ale gdy używam '-f' ogon i to już nie działa (buforowanie lub wget czeka na EOF):
tail -f 1.log | wget -i - -O - -q
Czy ktokolwiek mógłby zaproponować rozwiązanie za pomocą wget, curl lub jakiegokolwiek innego standardowego narzędzia Unix? Najlepiej, jeśli nie będę chciał ponownie uruchamiać wget w pętli, po prostu utrzymuj go przy pobieraniu adresów URL, gdy nadejdą.
Z 'xargs'' wget' otrzymuje adres URL jako parametr, więc nie potrzebujesz już '-i -'. 'tail -f 1.log | xargs -n1 wget -O - -q' – pabouk
to rozpocznie nowy proces wget na adres URL –
Jeśli działa na współdzielonej maszynie, możesz chcieć wiedzieć, że każdy inny użytkownik może odczytać twoje parametry za pomocą komendy "ps", więc nie umieszczaj haseł itp. w swoich adresach URL. Użyj jednego z rozwiązań, które nie wymagają obrócenia stdin na parametry, jeśli to może być problem (administratorzy z dostępem roota do komputera mogą oczywiście nadal sprawdzać, które adresy URL pobierasz, ale prawdopodobnie ufasz administratorom bardziej niż ufasz losowo inni użytkownicy). –