Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 smile

?

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