Existe-t-il un moyen de transmettre le nom d'utilisateur et le mot de passe à partir d'un fichier au lieu de la ligne de commande via --user et --password?
Contexte: je veux exécuter wget via cron et je ne veux pas que le nom d'utilisateur / mot de passe apparaisse dans la vue du processus
-i
option et de saisir le nom d'utilisateur et le mot de passe à partir de l'entrée standard..wgetrc
la flexibilité de travailler avec plusieurs serveurs? Sinon,.netrc
c'est une meilleure solution, voir l'autre réponse de tobias.pal.netrc
fichier, mais c'est documenté .Je suis surpris que personne n'ait mentionné le
.netrc
dossier. Créez d'abord le fichier s'il n'existe pas et définissez les autorisations sécurisées:Ensuite, vous pouvez ajouter le nom d'hôte, le nom d'utilisateur et le mot de passe sur une seule ligne:
Ensuite, lorsque vous le ferez
wget https://example.com
et que le serveur répondra401 Authorization Required
, wget réessayera avec le nom d'utilisateur et le mot de passe du~/.netrc
fichier.Lorsque vous utilisez ceci depuis cron, assurez-vous d'avoir le bon
HOME
répertoire. Souvent, les ensembles cronHOME=/
(dans ce cas, vous devrez créer le fichier en tant que/.netrc
, mais il est préférable de définir un bonHOME
au début de votre script, commeexport HOME=/root
).Vous pouvez spécifier plusieurs hôtes dans
~/.netrc
, un par ligne. Plus d'informations dansman netrc
.la source
.netrc
, consultez son manuel ou le doc curl associé .man netrc
dans l'OP, me demandant POURQUOI cela fonctionne, puis @ryenus votre commentaire me sauve, merci ~ Le manuel est toujours le bienvenu: P Ensuite, je sais que c'est un fichier rc utilisé parftp
, c'est-à-dire qu'il peut ne fonctionne pas pour http. Je vais l'essayer sur http plus tard.À bien des égards, la boucle peut être un meilleur choix. Wget est devenu un peu vicié au fil du temps.
Le commutateur -n de curl peut être utilisé pour cette tâche: http://curl.haxx.se/docs/manpage.html#-n
la source