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.

#26 Le 01/12/2012, à 15:43

ljere

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

je t'ai rajouté une commande pour voir si le prog est bien lancé

#!/bin/bash
##################################################################################
## Autheur: ljere                                                               ##
## Script pour éteindre les pc en effectuant une sauvegarde de sécurité         ##
##################################################################################
echo "script lancé" > ~/test
#sauvegarde des documents
while :; do
#lancement de la commande avec grsync

# demander si il faut bien éteindre
ans=$(zenity --question --timeout=60 --title "Alert" --text  "le pc va s'éteindre dans 60 sec");
if [ $? = 5 ]; then 
    dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
    exit 1
fi
    echo 'utilisateur lance la boucle'
    sleep 3540
done

mais il me semble que sur ce coup la on a pas beaucoup réfléchi
je m'explique le principe de ma commande était de lancer l'extinction sans être root mais si tu la places dans bin ou /usr/bin/ il faut activer le crontab de root soit

sudo crontab -e

ou alors tu remets ton script dans ton dossier personnel et la le crontab user sera l'activer sans problème en lui indiquant juste dans quel dossier se trouve le script tu as le choix des méthodes


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne

#27 Le 02/12/2012, à 03:39

samos412

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

j'aurais vraiment bien voulu noté [Résolu] dans le sujet, mais c'est toujours pas le cas.

j'ai bien un fichier tes qui s'est crée avec script lancé dedans.

ce ne serait pas crontab qui merdois?

Hors ligne

#28 Le 02/12/2012, à 09:58

ljere

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

quand tu lances ton script dans le terminal ça fonctionne?
tu as bien lancé crontab en root ou tu l'as déplacé dans ton home?
as tu modifié le script?


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne

#29 Le 02/12/2012, à 11:44

loubrix

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

une idée à tester: remplace dans le script

#!/bin/bash

par

#!/bin/sh

PS: je m'explique; dans /etc/crontab, on a ça:

SHELL=/bin/sh

et bien que dans /etc/shells on aie ça:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

je me demandais si ça pouvait jouer...


Asus X50VL - Ubuntu 12.04 AMD64
HP G62 - Ubuntu 12.10 AMD64
Fujitsu-Siemens Amilo EL - Lubuntu 12.04 i686
Manjaro, une rolling pour débutants

Hors ligne

#30 Le 03/12/2012, à 18:25

sam412

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

alors le script fonctionne lorsque je le lance dans un terminal.

j'ai modifier le cron en root,

j'ai modifié le script, en ajoutant

echo "script lancé" > ~/test

j'ai bien un fichier test dans mon home, avec script lancé écrit dedans.
donc le script fonctionne mais ne lance pas la commande.....

ne faut il pas etre en root pour lancer :

ans=$(zenity --question --timeout=60 --title "Alert" --text  "le pc va s'éteindre dans 60 sec");

c'est juste une idée

merci

Hors ligne

#31 Le 04/12/2012, à 09:53

elendil

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

Salut,

Si le script fonctionne dans un terminal sans root c'est qu'il est bon !

Par contre cron ne sait pas lancé d'application graphique si on ne lui précise pas vers quel display le faire....
Il faut semble-t-il ajouter

export DISPLAY=:0 &&

dans ton crontab ce qui devrait donner

45 11 * * * export DISPLAY=:0 && /usr/bin/eteindre

source : http://ubuntuforums.org/showthread.php?t=185993

Il faut par contre que /usr/bin/eteindre soit exécutable par tout le monde :

chmod 755 /usr/bin/eteindre

Elendil

Dernière modification par elendil (Le 04/12/2012, à 09:55)

Hors ligne

#32 Le 05/12/2012, à 09:19

sam412

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

yep

ayé ca marche, enfin.

un petit résumé s'impose

j'ai utiliser le script de ljere que j'ai un peu modifié:

#!/bin/bash
##################################################################################
## Autheur: ljere                                                               ##
## Script pour éteindre les pc en effectuant une sauvegarde de sécurité         ##
##################################################################################

#sauvegarde des documents
while :; do
#lancement de la commande avec grsync

# demander si il faut bien éteindre
ans=$(zenity --question --timeout=60 --title "Extinction auto du poste" --text  "le pc va s'éteindre brutalement dans 60 sec" --ok-label "eteindre maintenant" --cancel-label "j'attends la prochaine alerte, dans 1h");
if [ $? = 5 ]; then 
    dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
    exit 1
fi
    echo 'utilisateur lance la boucle'
    sleep 3600
done

je n'ai pas integré la sauvegarde, je trouve plus pertinant de l'integrer a la fermeture du poste, quelque soit la maniere de l'eteindre.

j'ai nommé ce script eteindre

j'ai copié ce fichier dans /usr/bin et je l'ai rendu executable par tous

chmod 755 /usr/bin/eteindre

puis j'ai édité le cron

crontab -e

et j'ai ajouté une ligne

00 18 * * * export DISPLAY=:0.0 && /usr/bin/eteindre

ainsi, le sript se lance tous les jours a 18h, et averti l'utilisateur que le poste va s'eteindre brutalement 60 secondes plus tard (sans qu'aucune demande d'enregistrement des documents ouverts soit demandé. d'ou le brutalement).
Soit il n'y a pas de reponse de sa part, et l'ordi s'eteint, soit il a le choix d'attendre 1h de plus pour que l'extinction se fasse plus tard.

et voila ca marche, il y avait une erreur de syntaxe dans ce que tu avais noté elendil

il manquait un .0 apres le DISPLAY=:0

Merci a tous.tes de m'avoir aidé, en espérant que ce script serve aussi a d'autres pour éviter que des ordinateur restent allumer inutilement toute la nuit par négligence de certains.nes

Sam412

Hors ligne

#33 Le 05/12/2012, à 10:52

elendil

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

Salut,

Bien vu pour le 0.0 après DISPLAY wink

Une possibilité d'amélioration est de remplacer le sleep par la commande at avec quelque chose du genre :

echo "/usr/bin/eteindre" | at now + 1 hours

C'est une subtilité mais sleep est une commande qui attend et va rester active pendant 3600 seconde . . .
Au contraire at prévoit de relancer le script dans une heure et ne fais rien pendant ce temps là.

Je ne pense pas qu'il y ait de réel problème avec sleep mais mettons que l'utilisateur demande à laisser le PC alumer une heure de plus et qu'il éteigne correctement le PC 20 minutes plus tard. Le script eteindre sera en cours d'exécution (à cause de la commande sleep).
Au contraire avec at rien ne tourne et si le PC est éteint une heure plus tard il ne va pas l'allumer et ne se lancera tout simplement pas.

J'espère ne pas dire de bêtise.

Bonne journée,

Elendil

Hors ligne

#34 Le 05/12/2012, à 11:19

ljere

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

je ne vois pas de réel inconvénient avec sleep quand on va éteindre le pc 20 mn plus tard comme tu le suggères le système va killer tous les process actif dont sleep
c'est vrai que l'on peux essayer avec at mais je suis sceptique sur l’intérêt


ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon

Hors ligne

#35 Le 05/12/2012, à 18:41

elendil

Re : [Resolu] automatisation de l'extinction du PC avec confirm et decompte

Je me posais un peu la question à "voix haute" et c'est vrai que la consommation CPU de sleep est assez insignifiante.

Moi j'utilise at dans mes scripts dans ce cas de figure là surtout car j'ai plus d'une heure à attendre et plein de script qui fonctionnent comme ça.
Et je ne voulais pas encombrer le système avec des dizaines de sleep qui attendent longtemps.

C'est vrai qu'ici ça ne doit pas changer grand chose.

Hors ligne