Script pour télécharger des mises à jours automatiques

Bonjour,

Je suis en formation dans une petite société d’informatique.

Régulièrement on doit allez chercher les dernières versions de logiciels et de pilotes.

J’ai réussi a faire mes scripts (notamment avec wget) sur les éditeurs de logiciels disposant d’un serveur ftp. Cependant, le constructeur nvidia dispose d’un serveur ftp, mais plus maintenu à jours dans la branche windows (en tout cas c’est ce que je constate).

Sur le site nvidia, dans le code source de la page je constate ceci :

Les versions 266058 sont donc susceptible d’être changé.

Quel solutions pourriez-vous me proposer ?

Merci

Personne n’a une petite idée ?

Bonjour,

Tu récupères la page du site avec wget, puis un coup de sed pour récupérer l’url du fichier à télécharger et de nouveau wget pour télécharger le fichier.

Et bien, je n’y est même pas pensé. Une idée à creuser.

Excuse moi pour le délai de la réponse…

Je vais tenter ce que tu me dit, si sa fonctionne je met le script en ligne, des fois que cela interraissse quelqu’un :wink:

Flamme_2

Bonjour

Par exemple pour récupérer mon ip:

#/bin/sh wget http://checkip.dyndns.org/ -O - -o /dev/null | sed 's/^.*Address: \(.*\)<\/body.*$/\1/'

Tu adaptes à ce que tu veux faire

Alors la compréhension de wget : ça va, la compréhension de sed : :017

Je comprends jusqu’au sed 's qui remplace une occurrence par une autre, c’est ça??

Mais la suite, c’est du regex??

Sed est vraiment puissant mais savoir l’utiliser est une toute autre histoire :think:

[quote=“M3t4linux”]Alors la compréhension de wget : ça va, la compréhension de sed : :017

Je comprends jusqu’au sed 's qui remplace une occurrence par une autre, c’est ça??[/quote]oui c’est ca

j’explique: s/^.Address: (.)</body.*$/\1/’

Par exemple wget me renvoie

[code] wget http://checkip.dyndns.org/ -O - -o /dev/null

Current IP CheckCurrent IP Address: 62.125.104.104[/code]

j’enregistre ce qu’il y a entre ( et ) et je remplace toute la ligne avec ce que j’ai copié avec \1

On peut utiliser plusieurs ( ) et alors on utilise \1 \2 etc…

[code]^ le debut de la ligne
. un caractère quelconque

  • au moins
    Address: le texte Address:
    ( on commence pour copier
    .* un caractère au moins
    ) on fini pour le copiage
    </body le texte </body
    .* un carctère quelconque au moins
    $ la fin de la ligne

\1 on remplace la ligne par ce qui a été copié
[/code]

donc ^.*Address: selectionne <html><head><title>Current IP Check</title></head><body>Current IP Address:

de même </body.*$ sélectionne

</body></html>

donc (.*) sélectionne ce qui reste c’est à dire 62.125.104.104 qui est mon ip (enfin modifié pour ici) et je ne retourne que ceci avec \1

Je n’ai peut être pas le mieux expliqué mais j’ai fait de mon mieux :ugeek: