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 17/05/2013, à 23:06

keraden

NUT - Onduleur Script pour arrêt d'un NAS en SSH

Bonjour à tous,

cela fait quelques jours que je me creuse la tête pour lancer automatiquement la commande d'arrêt de mon NAS (QNAP T209) en SSH depuis un PC Ubuntu 10.04, sur lequel est branché mon UPS.

La configuration NUT sur mon PC fonctionne correctement, en cas de perte du courant, le PC détecte le passage sur batterie et m'envoies un mail.
En complément, je voudrais qu'il lance une commande SSH d'arrêt du NAS.
J'ai procédé aux échanges de clés publiques pour éviter l'authentification entre les deux systèmes en SSH.

Dans le fichier /etc/nut/upssched.conf, je lance le script CMDSCRIPT /usr/local/bin/nut-notify.

Voici le contenu du fichier /usr/local/bin/nut-notify :

#!/bin/sh

# Ce script gère les différents évenements renvoyés pas upssched.
logger $1

case $1 in
	charge-sur-batterie)
		SUBJECT="UPS - Charge sur batteries"
		BODY="L'onduleur est passé sur batteries ...\nL'arrêt système se
ra demandé si le secteur ne revient pas."
		# Lancement de l arret du nas
		/usr/local/bin/nas-shutdown
	;;

	attente-retour-secteur)
		SUBJECT="UPS - Fin d'attente de retour secteur"
		BODY="Cela fait trop longtemps que le secteur est absent.\nUn ar
rêt forcé est en cours !"

		# Demande d'arrêt forcé (force shut down)
		/sbin/upsmon -c fsd
	;;

	charge-sur-secteur)
		SUBJECT="UPS - Charge sur secteur"
		BODY="L'onduleur est revenu sur secteur."
	;;

	batteries-vide)
		SUBJECT="UPS - Batteries vides"
		BODY="Les batteries sont vides, l'arrêt est imminent."
	;;

	arret-en-cours)
		SUBJECT="UPS - Arrêt en cours"
		BODY="Le système est en cours d'arrêt."
	;;

	perte-liaison)
                SUBJECT="UPS - Perte de liaison avec l'onduleur"
                BODY="La communication avec l'onduleur est interrompue."
        ;;

	retour-liaison)
                SUBJECT="UPS - Retour de liaison avec l'onduleur"
                BODY="La communication avec l'onduleur est OK."
        ;;

	batteries-hs)
                SUBJECT="UPS - URGENT - batteries HS"
                BODY="Les batteries sont à remplacer d'urgence."
	;;

	*)
		SUBJECT="UPS - Commande inconnue ..."
		BODY="Une commande inconnue a été envoyée par l'onduleur.\nLa co
mmande est : $1"
	;;
esac

echo $BODY | mailx -s "$SUBJECT" xxxxxx@gmail.com

Je reçois bien les mails correspondants aux différents évènements, mais l'appel du script /usr/local/bin/nas-shutdown ne semble pas fonctionner.

Voici le contenu de ce script qui fonctionne parfaitement quand je le lance à la main !? :

#!/bin/sh
ssh admin@nashostname '/sbin/halt'
exit 0

Tous les scripts ont les droits en exécution (+x) et appartiennent au groupe root:nut.

Quelqu'un aurait une idée ?

Merci

Hors ligne

#2 Le 22/05/2013, à 22:30

keraden

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Personne n'a une idée, une piste, je tourne en rond

Merci à vous

Hors ligne

#3 Le 03/01/2014, à 12:47

daniel_ubu

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Bonjour les amis. Tout comme Keraden j'ai le meme probleme avec NUT bref le script lancé par cmdscript pour l'arret via ssh d'un serveur ne s'execute pas et quand je mets la ligne dans un prompt cela s'execute correctement. SOS à l'aide.

Hors ligne

#4 Le 03/01/2014, à 17:07

daniel_ubu

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Salut Keraden. j'ai voulu savoir si tu as pu trouvé une issue pour ton problème

Hors ligne

#5 Le 06/01/2014, à 10:33

keraden

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Salut Daniel,

bonne année et meilleurs voeux.
Eh ben non, j'ai pas trouvé de solution. Mon réseau électrique est stable donc le problème ne se pose pas mais j'aimerais bien comprendre ...

Content de voir mon post réactivé.

A bientôt

Hors ligne

#6 Le 09/01/2014, à 10:26

daniel_ubu

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Salut Keraden
Mes voeux les meilleurs egalement .
Merci de m'avoir repondu. Je suis en train de penser à une autre solution parce que mon DG tient vraiment à cela surtout j'ai fait la demo et qu'ils ont vu que la machine peut s'eteindre en cas de defaut d'energie, ils sont convaincu que cela doit marcher et là nous somme en periode de delestage frequente et j'ai une pression pas possible. Le problème nous avons une base de donnée oracle qu 'il ne faut en aucun cas arreter brusquement. Du coup l'inscription d'une ligne d'arret de la base est obligatoire et voilà que l'upssched ne veut pas lire cette instruction. je pense quand meme que le probleme doit venir de upssched. certainement qu'il a été concu pour lire seulement les commandes de upsmon. Mais le comble reste toujours comment il reconnait quand meme les instructions if et pas les lignes de commandes. j'ai eu l'idee d'ouvrir un autre terminal lors de l'execution de mon script, terminal dans lequel va s'executer  le ssh avec EXPECT. Essaie aussi voir si tè toujours dans la logique.

Hors ligne

#7 Le 09/01/2014, à 10:58

jplemoine

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Je viens de penser à un truc mais je ne sais pas si c'est bon ou pas.
- le NUT fait arrêter le PC sans gérer le NAS
- c'est dans le script de fermeture du PC qu'il faut mettre l'extinction du NAS.

Ça peut fonctionner ?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#8 Le 09/01/2014, à 16:58

daniel_ubu

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Nop! jplemoine
je trouve
case $1 in
    charge-sur-batterie)
        SUBJECT="UPS - Charge sur batteries"
        BODY="L'onduleur est passé sur batteries ...\nL'arrêt système se
ra demandé si le secteur ne revient pas."
        # Lancement de l arret du nas
        /usr/local/bin/nas-shutdown
    ;;

    attente-retour-secteur)
        SUBJECT="UPS - Fin d'attente de retour secteur"
        BODY="Cela fait trop longtemps que le secteur est absent.\nUn ar
rêt forcé est en cours !"

        # Demande d'arrêt forcé (force shut down)
        /sbin/upsmon -c fsd #
    ;;

Hors ligne

#9 Le 09/01/2014, à 17:04

daniel_ubu

Re : NUT - Onduleur Script pour arrêt d'un NAS en SSH

Zut!  En fait pour l'arret du pc, la ligne de commande /sbin/upsmon -c fsd va juste lire la commande SHUTDOWNCMD "/sbin/shutdown -h now" dans le fichier upsmon.conf c'est pour cela je me dis peut etre il n'arrive pas à interpreter autre ligne de commande. je reflechis encore

Hors ligne