Ответы:
Используйте .wgetrc
файл ( руководство по GNU ), в котором вы можете установить имя пользователя и пароли для обоих или обоих ftp и http.
Чтобы использовать одинаковые учетные данные для обоих укажите
user=casper
password=CasperPassword
или индивидуально
ftp_user=casperftp
ftp_password=casperftppass
http_user=casperhttp
http_password=casperhttppass
.wgetrc
Обеспечивает ли гибкость работы более чем с одним сервером? Если нет, то .netrc
это лучшее решение, см. Другой ответ от tobias.pal
.netrc
файл, но это задокументировано .
Я удивлен, что никто не упомянул .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
.
man netrc
в ОП, интересно, ПОЧЕМУ это работает, затем @ryenus твой комментарий спасает меня, спасибо ~ Руководство всегда приветствуется: P Тогда я знаю, что это rc-файл, используемый ftp
, то есть он может не работает для http. Я попробую это на http позже.
Во многих отношениях локон может быть лучшим выбором. Wget стал немного устаревшим со временем.
Переключатель curl -n можно использовать для этой задачи: http://curl.haxx.se/docs/manpage.html#-n
-i
опцию и вводить имя пользователя и пароль из стандартного ввода.