Respostas:
Use um .wgetrc
arquivo ( manual GNU ) no qual você pode definir o nome de usuário e as senhas para ftp e http.
Para usar as mesmas credenciais para ambos, especifique
user=casper
password=CasperPassword
ou individualmente
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.wgetrc
flexibilidade para trabalhar com mais de um servidor? Se não, .netrc
é uma solução melhor, veja a outra resposta de tobias.pal
.netrc
arquivo, mas está documentado .
Estou surpreso que ninguém tenha mencionado o .netrc
arquivo. Primeiro, crie o arquivo se ele não existir e defina permissões seguras:
touch ~/.netrc
chmod 600 ~/.netrc
Em seguida, você pode adicionar o nome do host, o nome de usuário e a senha, todos em uma linha:
echo 'machine example.com login casper password CasperPassword' >> ~/.netrc
Então, quando você wget https://example.com
responder e o servidor responder 401 Authorization Required
, o wget tentará novamente com o nome de usuário e a senha do ~/.netrc
arquivo.
Ao usar isso no cron, verifique se você possui o HOME
diretório certo . Geralmente, o cron define HOME=/
(nesse caso, você teria que criar o arquivo como /.netrc
, mas é melhor definir um apropriado HOME
no início do script, como export HOME=/root
).
Você pode especificar vários hosts ~/.netrc
, um por linha. Mais informações em man netrc
.
man netrc
OP, me perguntando por que isso funciona, então @ryenus seu comentário me salva, obrigado ~ O manual é sempre bem-vindo: P Então eu sei que é um arquivo rc usado por ftp
, ou seja, pode não funciona para http. Vou tentar no http mais tarde.
Em muitos aspectos, o enrolamento pode ser uma escolha melhor. O Wget ficou um pouco obsoleto com o tempo.
A opção -n do curl pode ser usada para esta tarefa: http://curl.haxx.se/docs/manpage.html#-n
-i
opção e inserir o nome de usuário e a senha a partir da entrada padrão.