#1 Le 10/09/2020, à 18:33
- Tuvan
Lancer le dernier fichier téléchargé depuis un script
Bonjour, voila ma situation : j'ai un script qui récupère des templates html depuis un serveur distant chaque jour, j'aimerais lancer le dernier fichier html téléchargé avec un autre script (en utilisant chromium) :
ma commande actuelle est celle ci :
chromium-browser /home/tuvan/example.html
j'aimerais avoir a la place de example.html une variable qui récupère le dernier fichier téléchargé, (oui j'ai du mal à bien expliquer mon problème) je vous donne un exemple :
imaginons qu'un template nommé template.html à été créé sur mon serveur distant, j'allume ensuite ma vm linux et via un script au démarrage elle récupère ce fichier et le place dans le répertoire /home/tuvan/ je veux ensuite lancer directement ce template avec un deuxième script qui appelle ce fichier. Je ne sais pas quoi mettre dans ma commande pour récupérer ce "template.html" et le lancer directement sans modifier mon script.
Hors ligne
#2 Le 10/09/2020, à 18:46
- Watael
Re : Lancer le dernier fichier téléchargé depuis un script
salut,
le plus simple serait de faire le ménage avant le téléchargement :
[pseudo-code]
/home/tuvan/htmlFiles
|_ oldies/
|_ latest/
mv latest/*.html oldies/
wget "$adr" > /home/tuvan/htmlFiles/latest/
[/pseudo-code]
Dernière modification par Watael (Le 10/09/2020, à 18:46)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 11/09/2020, à 13:00
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Bonjour,
Tout d'abord merci d'avoir répondu aussi rapidement,
la solution est plutot bien pensée mais j'ai toujours un problème : lancer le fichier html sans avoir a rentrer manuellement le nom de ce dernier
Par exemple si je fonctionne avec ta solution je vais donc clean le dossier avant de télécharger mon template dans ce dernier :
j'ai par exemple le dossier latest avec les fichiers toto tata, ces fichiers seront move dans le dossier oldies, le dossier latest sera vide, le nouveau template sera téléchargé dans ce dossier : je me retrouve avec :
/home/tuvan/
|_ latest/
new_template.html
|_ oldies/
toto
tata
Donc ensuite comment je lance ce "new_template.html" sans avoir a rentrer manuellement le nom comme dans l'exemple :
chromium-browser /home/tuvan/new_template.html
Hors ligne
#4 Le 11/09/2020, à 14:05
- Zakhar
Re : Lancer le dernier fichier téléchargé depuis un script
chromium-browser "$(ls -t /home/tuvan | head -n1)"
Explication :
ls -t = listage dans l'ordre du temps (plus récent en premier)
head -n1 = on ne garde que le premier.
Dernière modification par Zakhar (Le 11/09/2020, à 14:06)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#5 Le 11/09/2020, à 14:54
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Merci encore d'avoir répondu si vite, je pensais que cela réglerais mon problème car lorsque j'utilise ls -t /home/tuvan | head -n1 cela m'affiche bien le dernier fichier, cependant quand j'utilise cette commande :
chromium-browser "$(ls -t /home/tuvan | head -n1)"
j'ai une page internet qui s'affiche avec le message d'erreur : ce site est inaccessible, impossible de trouver l'adresse ip du serveur de example.html
DNS_PROBE_FINISHED_NXDOMAIN
Tandis que si je rentre manuellement :
chromium-browser /home/tuvan/example.html
pas de problème ma page s'affiche correctement.
Hors ligne
#6 Le 11/09/2020, à 15:14
- Watael
Re : Lancer le dernier fichier téléchargé depuis un script
ma proposition ne nécessite pas de variable, puisqu'il n'y a qu'un seul fichier dans le répertoire (!).
soit le nom est connu et constant, soit on peut passer par le globbing shell (Développement des chemins) : /chemin/latest/*.html
Dernière modification par Watael (Le 11/09/2020, à 15:15)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 11/09/2020, à 15:16
- Zakhar
Re : Lancer le dernier fichier téléchargé depuis un script
Oui, car ainsi tu lances le fichier en local, pas sûr que Chromium interprète ça comme le scheme FILE://
Tu peux essayer en rajoutant FILE://
chromium-browser "$( printf "FILE://%s" "$(ls -t /home/tuvan | head -n1)")"
Sinon, ça marchera sans doute sans problème avec le fichier que tu viens de télécharger en le prenant sur le site distant, mais tu vas alors lancer la page sur le site distant
chromium-browser "$( printf "https://mon_site_web.com/%s" "$(ls -t /home/tuvan | head -n1)")"
Dernière modification par Zakhar (Le 11/09/2020, à 15:18)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#8 Le 11/09/2020, à 15:28
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
C'est bon j'ai compris mon erreur grâce à toi, tout fonctionne maintenant merci beaucoup
Hors ligne
#9 Le 11/09/2020, à 16:16
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Re, désolé j'ai encore un petit problème, en fait je veux exécuter ce script tel jour à telle heure, qui affiche ma page (ce script fonctionne) il s'appelle displayspot.sh :
Pour ce faire j'utilise le cron :
je fais crontab -e et je rentre :
15 * * * * /home/tuvan/script/./displayspot.sh (pr lancer ts les jours ttes les heures a la minute 15)
Quand je regarde dans les logs du cron ( grep CRON /var/log/syslog )
je vois que mon script s'est bien exécuté pourtant rien ne s'est passé ma page ne s'est pas affichée, quelqu'un aurait une idée ?
log : Sep 11 17:15:01 tuvanpc CRON [8401] : tuvan (CMD) (/home/tuvan/script/./displayspot.sh)
Hors ligne
#10 Le 11/09/2020, à 16:26
- ylag
Re : Lancer le dernier fichier téléchargé depuis un script
Bonjour,
Sous toute réserve, je crois que ta ligne devrait se lire comme suit:
15 * * * * /bin/sh /home/tuvan/script/displayspot.sh
?
Hors ligne
#11 Le 11/09/2020, à 16:33
- Watael
Re : Lancer le dernier fichier téléchargé depuis un script
cron utilise /bin/sh, il n'est donc pas nécessaire de l'invoquer pour exécuter le script.
il faut indiquer le DISPLAY. C'est un "problème" fréquent.
cherche : cron + DISPLAY
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#12 Le 11/09/2020, à 16:34
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
J'ai essayé, ça ne fonctionne pas non plus.
Hors ligne
#13 Le 11/09/2020, à 17:15
- Watael
Re : Lancer le dernier fichier téléchargé depuis un script
tu as essayé comment ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 11/09/2020, à 17:18
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Je répondais à ylag de n'ai pas essayé avec Display j'vais tester ça.
Hors ligne
#15 Le 11/09/2020, à 17:21
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Watael tu veux dire que je devrais mettre par exemple :
15 * * * * display /home/tuvan/script/displayspot.sh
?
Hors ligne
#16 Le 11/09/2020, à 17:28
- ylag
Re : Lancer le dernier fichier téléchargé depuis un script
Bonjour,
15 * * * * export DISPLAY=:0 && /home/tuvan/script/displayspot.sh
...dépendamment de la valeur de la variable $DISPLAY chez-toi ?
Le script soit être exécutable.
Merci @Watael
?
Dernière modification par ylag (Le 11/09/2020, à 17:35)
Hors ligne
#17 Le 11/09/2020, à 17:33
- Tuvan
Re : Lancer le dernier fichier téléchargé depuis un script
Enfin ça fonctionne merci à tous, et oui mon script était exécutable comme je l'avais dit précédemment mon script fonctionnait sans problème quand je le lançais manuellement
Hors ligne
#18 Le 11/09/2020, à 17:37
- Watael
Re : Lancer le dernier fichier téléchargé depuis un script
l'export est inutile
15 * * * * DISPLAY=:0 /home/tuvan/script/displayspot.sh
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne