Um comando Wget executado pelo cron pode carregar a configuração de outro usuário e um ambiente diferente do mesmo comando em um terminal interativo.

Para o GNU Wget 1.x, coloque as configurações relevantes da tarefa em um arquivo que a conta dela possa ler:

use_proxy = on
http_proxy = http://proxy.example:8080
https_proxy = http://proxy.example:8080

Um crontab de usuário existente pode selecionar esse arquivo explicitamente:

15 3 * * * /usr/bin/wget --config=/home/reports/wget-proxy.conf --output-document=/home/reports/report.csv https://data.example/report.csv

Substitua o executável, a configuração, o caminho de saída e a URL da tarefa. Caminhos absolutos eliminam outra diferença em relação ao diretório de trabalho de um shell interativo.

Por padrão, o Wget lê um arquivo de inicialização global e depois seu arquivo de inicialização de usuário. O WGETRC seleciona o local do segundo; caso contrário, o Wget procura $HOME/.wgetrc. Por isso importam o HOME e a conta usados pela tarefa agendada.

Defina deliberadamente as entradas de proxy necessárias no arquivo escolhido. A lista de proxies HTTP pode fornecer URLs candidatas para downloads públicos de relatórios em uma rota de proxy público permitida. O .wgetrc de uma conta root não é automaticamente a configuração de outro usuário, e copiar o arquivo inteiro também pode copiar opções não relacionadas.

Quando a configuração coincidir, preserve o erro real do Wget vindo da tarefa. Uma conexão de proxy recusada, um desafio 407 e um erro de certificado do destino exigem próximos passos diferentes.

Artigos relacionados