Odpowiedzi:
Użyj .wgetrc
pliku ( 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
.wgetrc
zapewnia elastyczność pracy z więcej niż jednym serwerem? Jeśli nie, .netrc
to lepsze rozwiązanie, zobacz inną odpowiedź z tobias.pal
.netrc
pliku, ale jest to udokumentowane .
Dziwię się, że nikt nie wspomniał o .netrc
pliku. 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.com
a serwer odpowie 401 Authorization Required
, wget spróbuje ponownie z nazwą użytkownika i hasłem z ~/.netrc
pliku.
Korzystając z tego z crona upewnij się, że masz właściwy HOME
katalog. Często zestawy cron HOME=/
(w takim przypadku musisz utworzyć plik jako /.netrc
, ale lepiej jest ustawić odpowiedni HOME
na 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 netrc
w 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
-i
opcji i podanie nazwy użytkownika i hasła ze standardowego wejścia.