Wget: ¿Hay alguna forma de pasar el nombre de usuario y la contraseña de un archivo?


22

¿Hay alguna manera de pasar el nombre de usuario y la contraseña de un archivo en lugar de la línea de comando a través de --user y --password?

Antecedentes: quiero ejecutar wget a través de cron y no quiero que el nombre de usuario / contraseña aparezca en la vista de proceso

Respuestas:


13

Utilice un .wgetrcarchivo ( manual de GNU ) en el que puede establecer el nombre de usuario y las contraseñas para ftp y http o para ambos.

Para usar las mismas credenciales para ambos, especifique

user=casper
password=CasperPassword

o individualmente

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

2
El manual de widgets de GNU también sugiere usar la -iopción y alimentar el nombre de usuario y la contraseña desde la entrada estándar.
— Richard

¿ .wgetrcProporciona la flexibilidad para trabajar con más de un servidor? Si no, .netrces una mejor solución, vea la otra respuesta de tobias.pal
— ryenus

Obviamente extrañé wget usando un .netrcarchivo, pero está documentado .
— Mike Renfro

19

Me sorprende que nadie haya mencionado el .netrcarchivo. Primero cree el archivo si no existe y establezca permisos seguros:

touch ~/.netrc
chmod 600 ~/.netrc

Luego puede agregar el nombre de host, el nombre de usuario y la contraseña, todo en una línea:

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

Luego, cuando lo haga wget https://example.comy el servidor responda 401 Authorization Required, wget volverá a intentarlo con el nombre de usuario y la contraseña del ~/.netrcarchivo.

Cuando use esto desde cron, asegúrese de tener el HOMEdirectorio correcto . A menudo, los conjuntos cron HOME=/(en ese caso, tendrías que crear el archivo como /.netrc, pero es mejor establecer un apropiado HOMEal comienzo de tu script, como export HOME=/root).

Puede especificar varios hosts en ~/.netrc, uno por línea. Más información en man netrc.


2
Para conocer la sintaxis de .netrc, consulte su manual o el documento curl relacionado .
— ryenus

Al principio soy demasiado descuidado para ver el man netrcOP, preguntándome POR QUÉ esto funciona, luego @ryenus tu comentario me salva, gracias ~ El manual siempre es bienvenido: P Entonces sé que es un archivo rc utilizado ftp, es decir, puede no funciona para http. Lo intentaré en http más tarde.
— Fin de semana

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.