Wget: Чи є спосіб передавати ім’я користувача та пароль з файлу?


22

Чи є спосіб передати ім'я користувача та пароль з файлу замість командного рядка через --user та --password?

Передумови: я хочу запустити wget через cron і не хочу, щоб ім'я користувача / пароль відображалися в режимі перегляду процесу

Відповіді:


13

Скористайтеся .wgetrcфайлом ( посібник з GNU ), в якому ви можете встановити ім’я користувача та паролі для будь-якого або обох ftp та http.

Для використання однакових облікових даних для обох вказати

user=casper
password=CasperPassword

або окремо

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

2
GNU Wget керівництво також пропонує використовувати -iопцію і підгодівлі ім'я користувача і пароль в зі стандартного введення.
Річард

Чи .wgetrcзабезпечує гнучкість для роботи з більш ніж одним сервером? Якщо ні, .netrcто краще рішення, дивіться іншу відповідь від tobias.pal
ryenus

Я, очевидно, пропустив wget за допомогою .netrcфайлу, але це документально підтверджено .
Майк Ренфро

19

Я здивований, що .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.


2
Для синтаксису .netrcдивіться його посібник чи відповідний документ curl .
ryenus

Спочатку я занадто недбалий, щоб побачити man netrcв ОП, цікаво, ЧОМУ це працює, потім @ryenus ваш коментар рятує мене, дякую ~ Посібник завжди вітається: P Тоді я знаю, що це rc-файл, який використовується ftp, тобто він може не працює для http. Я спробую це на http пізніше.
вихідні

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.