Назад | Перейти на главную страницу

Wget: есть ли способ передать имя пользователя и пароль из файла?

Есть ли способ передать имя пользователя и пароль из файла вместо командной строки через --user и --password?

Справочная информация: я хочу запустить wget через cron и не хочу, чтобы имя пользователя и пароль отображались в представлении процесса.

Я удивлен, что никто не упомянул .netrc файл. Сначала создайте файл, если он не существует, и установите безопасные разрешения:

touch ~/.netrc
chmod 600 ~/.netrc

Затем вы можете добавить имя хоста, имя пользователя и пароль в одной строке:

echo 'machine example.com login casper password CasperPassword' >> ~/.netrc

Тогда, когда вы это сделаете wget https://example.com и сервер отвечает 401 Authorization Required, wget повторит попытку, используя имя пользователя и пароль из ~/.netrc файл.

При использовании из cron убедитесь, что у вас есть права HOME каталог. Часто cron устанавливает HOME=/ (в этом случае вам нужно будет создать файл как /.netrc, но лучше установить правильный HOME в начале вашего скрипта, например export HOME=/root).

Вы можете указать несколько хостов в ~/.netrc, по одному в строке. Больше информации в man netrc.

Использовать .wgetrc файл (Руководство GNU), в котором вы можете установить имя пользователя и пароли для ftp и http или для обоих.

Чтобы использовать одинаковые учетные данные для обоих, укажите

user=casper
password=CasperPassword

или индивидуально

ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass

Во многих отношениях локон может быть лучшим выбором. Wget со временем устарел.

Для этой задачи можно использовать переключатель -n в curl: http://curl.haxx.se/docs/manpage.html#-n