Odpowiedzi:
Użyj .wgetrcpliku ( instrukcja GNU ), w którym możesz ustawić nazwę użytkownika i hasło dla jednego lub obu ftp i http.
Aby użyć tych samych poświadczeń dla obu, określ
user=casper
password=CasperPassword
lub indywidualnie
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.wgetrczapewnia elastyczność pracy z więcej niż jednym serwerem? Jeśli nie, .netrcto lepsze rozwiązanie, zobacz inną odpowiedź z tobias.pal
.netrcpliku, ale jest to udokumentowane .
Dziwię się, że nikt nie wspomniał o .netrcpliku. Najpierw utwórz plik, jeśli nie istnieje i ustaw bezpieczne uprawnienia:
touch ~/.netrc
chmod 600 ~/.netrc
Następnie możesz dodać nazwę hosta, nazwę użytkownika i hasło, wszystkie w jednym wierszu:
echo 'machine example.com login casper password CasperPassword' >> ~/.netrc
Następnie, gdy to zrobisz, wget https://example.coma serwer odpowie 401 Authorization Required, wget spróbuje ponownie z nazwą użytkownika i hasłem z ~/.netrcpliku.
Korzystając z tego z crona upewnij się, że masz właściwy HOMEkatalog. Często zestawy cron HOME=/(w takim przypadku musisz utworzyć plik jako /.netrc, ale lepiej jest ustawić odpowiedni HOMEna początku skryptu, na przykład export HOME=/root).
Możesz podać wiele hostów ~/.netrc, po jednym w wierszu. Więcej informacji w man netrc.
man netrcw OP, zastanawiam się, DLACZEGO to działa, a następnie @ryenus twój komentarz mnie ocala, dzięki ~ Instrukcja jest zawsze mile widziana: P W takim razie wiem, że jest to plik rc używany przez ftp, to znaczy, że może nie działa dla http. Spróbuję później na http.
Pod wieloma względami loki mogą być lepszym wyborem. Wget z czasem trochę się zestarzał.
Do tego zadania można użyć przełącznika -l curl: http://curl.haxx.se/docs/manpage.html#-n
-iopcji i podanie nazwy użytkownika i hasła ze standardowego wejścia.