[script] automatiser un shutdown
[script] automatiser un shutdown
Bonjour,
je cherche à automatiser des arrêt à distance sur des pcs linux et m'assurer avant tout que personnes ne soit connecté
l'idée c'était de posée une condition du genre :
si une session X est en cours alors ne pas éteindre sinon shutdown -h +30
avez vous une idée de script.
je cherche à automatiser des arrêt à distance sur des pcs linux et m'assurer avant tout que personnes ne soit connecté
l'idée c'était de posée une condition du genre :
si une session X est en cours alors ne pas éteindre sinon shutdown -h +30
avez vous une idée de script.
- wain
- Maître du Kyudo
- Messages : 1854
- Inscription : ven. 11 août 2006, 19:15
- Localisation : Nancy (54)
Un ptit bout de code vite fait:
Code : Tout sélectionner
if [ $(who --users | wc -l) -eq 0 ]; then
echo "Arrêt du système dans 30 sec"
sleep 30
halt
else
echo "Des utilisateurs sont encore connectés. Arrêt impossible"
fi
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/
- vincentxavier
- Elfe
- Messages : 778
- Inscription : ven. 11 août 2006, 18:17
- Localisation : Epinay sur Seine (93)
remarque stupide : j'avais l'habitude de lancer des batchs ! c'est dommage pour ces utilisateurs là
Warranty
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils
- wain
- Maître du Kyudo
- Messages : 1854
- Inscription : ven. 11 août 2006, 19:15
- Localisation : Nancy (54)
En fait, tout devrait tourner autour de la commande "who".
J'ai regardé rapidement le man, l'option --users doit donner la liste des utilisateurs connectés.
Et c'est peut-être ça qui cloche. Je t'invite à faire un essai de who --users pour voir ce que renvoi la commande.
La suite de la commande (wc -l) permet simplement de compter le nombre de lignes renvoyées par la commande.
Le test -eq 0 (equal zéro) lui est correct.
Question: tes utilisateurs son connectés comment ? en ssh ? à l'interface graphique ? sur un tty ?
J'ai regardé rapidement le man, l'option --users doit donner la liste des utilisateurs connectés.
Et c'est peut-être ça qui cloche. Je t'invite à faire un essai de who --users pour voir ce que renvoi la commande.
La suite de la commande (wc -l) permet simplement de compter le nombre de lignes renvoyées par la commande.
Le test -eq 0 (equal zéro) lui est correct.
Question: tes utilisateurs son connectés comment ? en ssh ? à l'interface graphique ? sur un tty ?
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/
- wain
- Maître du Kyudo
- Messages : 1854
- Inscription : ven. 11 août 2006, 19:15
- Localisation : Nancy (54)
C'est un peu gros tout ça non ?djaac a écrit :j'ai prèsenté ca à mon admin ce matin,
deja il veut du sh par ce que sous les sun bash n'est pas installé,
de plus il veut pouvoir savoir la machine et une station ou un serveur sur les sun et redhat ?
grosse misère quoi
Un admin digne de ce nom devrait être en mesure de faire ce script... ensuite les quelques lignes données plus haut sont valables pour bash comme pour sh -et même zsh-.
Tu peux reformuler la phrase "de plus il veut pouvoir savoir la machine et une station ou un serveur sur les sun et redhat " stp ? j'ai rien compris
s/pacman/yaourt/g c'est ARCHi clair ! => http://archlinux.fr/
- vincentxavier
- Elfe
- Messages : 778
- Inscription : ven. 11 août 2006, 18:17
- Localisation : Epinay sur Seine (93)
clair, je suis d'accod avec wain, c'est hénaurme si ton admin réseau sait pas faire cela (il a été formé par MicroSoft ?)
sinon, je pense que
et
t'aideront respectivement à déterminer si ta machine a un processeur Sun et si la distribution est RedHat.
Pour savoir si c'est un serveur ou une station de travail, on peut se baser sur la présence ou non de X (en tant que paquet installé ou serveur lancé)
Faudra certaiment jouer avec /var/run/{xauth,xdmctl}
Voili voilà
sinon, je pense que
Code : Tout sélectionner
uname -i
Code : Tout sélectionner
cat /etc/*release*
Pour savoir si c'est un serveur ou une station de travail, on peut se baser sur la présence ou non de X (en tant que paquet installé ou serveur lancé)
Faudra certaiment jouer avec /var/run/{xauth,xdmctl}
Voili voilà
Warranty
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils
THIS ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
En clair, je ne pourrais être tenu responsable des dégats causés par l'utilisation de mes conseils