Ответы:
Используйте .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опцию и вводить имя пользователя и пароль из стандартного ввода.