Есть ли способ передать имя пользователя и пароль из файла вместо командной строки через --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