Arreter, démarrer automatiquement serveur à distance

Bonjour

J’ai un serveur de documents, principalement pour mes soins mais aussi pour des docs techniques d’une asso.
Le serveur est chez moi et je souhaiterai pouvoir l’arreter quand je vais me coucher et qu’il redémarre de lui même vers les 6h du mat.
Pour les clients distants, pas dramatique, je suis le plus couche tard :astonished: et il n’y a pas de contrainte operationnelle derriere.

Le cahier des charges (je n’ai pas trouvé l’outil qui va bien pour faire ce que je veux, alors…):
A - Gérer facilement l’extinction du serveur:
Deux cas possibles:
1 - Soit mon PC perso est allumé et c’est lui qui donnera lordre d’extinction du serveur dés lors qu’une certaine heure est passée (par ex aprés 23h si j’éteinds mon PC le serveur s’éteindra, par contre si j’éteinds mon PC avant 23h, il ne se passera rien sur le serveur avant qu’il ne s’éteigne de lui même, cf point 2).
2 - Soit mon PC perso n’est pas/plus connecté et le serveur s’éteindra de lui même à une heure indiquée.

B - Gérer facilement le boot du serveur:
1- à distance (j’envois les magic packet via mon tel et le serveur boot) *
2 - à une heure indiquée (par ex tt les matins à 6h, sauf les WE à 9h) **
3 - au démarrage de mon PC serveur, si je suis dans une plage horaire définie (par ex, si j’allume mon PC le WE à 8h du mat le serveur démarrera, mais pas si je démarre mon PC à 4h du mat).

  • j’ai essayé, et j’ai parfois eu quelques pb… suivant la maniere dont est arreté le serveur (si je fais un shutdown et une coupure alim puis une réallimentation derriere, le serveur ne démarre pas sur un magic packet). Sans compter que mes packets ne voulaient pas passer ma box, certainement un soucis de conf…

** là, il ne doit pas y avoir d’autre solution que d’exploiter des options du bios

Alors voilà, la question est comment faire ceci ?
Je pense à des scripts sur mon PC, sur le serveur mais comment ? avec quelles commandes ?
Peut être existe t’il un programme qui me pemettrait de faire tt ca ? J’ai fouillé un peu sur le net, mais rien trouvé de fantastique. :shifty:

Merci

Salut,

La commande shutdown est prévu à cet effet. :wink:

** Planifier une extinction ou un redémarrage.

  • Si tu veux éteindre ou redémarrer ta machine dans 30 mn alors.

pour éteindre :

Ce message s’affichera :

pour rebooter :

Ce message s’affichera :

Broadcast message from root (pts/1) (Sat Jul 7 23:17:07 2012): The system is going DOWN for reboot in 30 minutes!

  • Si tu veux l’éteindre ou le redémarrer à une heure fixe,(ici nous dirons 23:00) :

Pour l’éteindre :

Pour redémarrer :

Pour annuler la planification d’une extinction ou d’un redémarrage, utilises la commande -c

[code]root@serveur-local:~# shutdown -r +1

The system is going DOWN for reboot in 1 minute!) (Sat Aug 4 19:34:26 2012):

The system is going down for reboot NOW!l (pts/0) (Sat Aug 4 19:35:26 2012):

root@serveur-local:~# Connection to 192.168.1.14 closed by remote host.

Connection to 192.168.1.14 closed.

:~$[/code]

*** En bonus.

Arrêter le système et prévenir les utilisateurs par un message.

Les utilisateurs auront un message sur leur console et auront le temps de quitter leur session.

tellement habitué à faire le shutdown -h now… que j’en avais oublié les détails :smiley: :astonished:
Je vais regarder ca…

Merci :slightly_smiling:

Ce fil n’a pas sa place dans T&A ==> SD.

Le tout associé à la crontab et tu arriveras à faire tout ce que tu veux !

Tu peux aussi utiliser directement la RTC via le Bios et l’ACPI.
Voici un tuto qui te donnera les grandes lignes:
mythtv-fr.org/wiki/mythwelcome/mythwelcome

Question : Pour le boot auto t’es obligé de passer par RTC de toute facon non ? Je vois pas comment tu pourrais faire autrement.

Edit : Bah ui “ben” c’est bien ce que je pensais aussi, mais vu que le poste de pirate dit “peux aussi” , je me suis dit bah merde… ya un truc que je connais pas :smiley:.

En gros tu peux programmer un reboot ou un halt mais pour programmer un démarrage sur une machine à l’arrêt c’est obligatoirement dans le bios que ça se passe.

Enfin je pense. :033

De mon côté j’avais utilisé pendant quelques jours la commande rtcwake qui m’avait permis de transformer mon pc en réveil matin :laughing: en plus de la fonction sommeil bien sûr !

Je peux retrouver la syntaxe exacte que j’avais utilisée si besoin

[quote=“f4clo”]De mon côté j’avais utilisé pendant quelques jours la commande rtcwake qui m’avait permis de transformer mon pc en réveil matin :laughing: en plus de la fonction sommeil bien sûr !

Je peux retrouver la syntaxe exacte que j’avais utilisée si besoin[/quote]

Je suis preneur :wink:

Ce qui est bête AMA, c’est qu’on est capable de décider avec une simple prise-programmable de l’heure à laquelle une lampe sera allumée et ensuite éteinte, et on est incapable de faire la même chose avec un ordi :017
Je suppose que ça nécessite une impulsion électro-magnétique ?
Je ne connais rien en électronique.
Il n’existe pas un appareil capable de donner une telle “impulsion” à l’aide d’un courant électrique ?
Ou alors, je ne vois que le côté mécanique :
Un robinet ouvert au goutte à goutte qui remplit un récipient placé sur une balance type Roberval, avec un contre-poids sur l’autre plateau.
Arrivé à un certain niveau de remplissage, donc de masse d’eau, le plateau descends et touche un contact, lequel libère un marteau.
Le marteau, côté pointu, vient frapper violemment la touche “power” de l’ordi … qui s’allume.
Le calcul du temps de remplissage nécessaire à la descente du plateau est un jeu d’enfant. :laughing: :laughing: :laughing:
En écrivant cette connerie, je m’y voyais dans mon esprit.
Quand on étaient gamins, on faisait ça avec des circuits de billes et des demi roseaux en bascule… Ha ! la belle époque où la mécanique était un art :033

Kristy, tu as oublié le mot “directement” dans mon post.
Toutes les solutions proposées utilisent la RTC évidement, mais pourquoi passer par un intermédiaire alors qu’on peut écrire directement l’heure via un script.
Donc pour le réveil, c’est:

  • la RTC, mais il faut écrire l’heure dans le BIOS avant d’éteindre la machine
    le WOL à n’importe quel moment.

Re !!

Voila ce que j’avais fait pour redémarrer mon pc, je n’avais pas passé bcp de temps sur les options possibles mais pour un retour de veille après une durée de 120 secondes j’avais fait :

Cela provoque une mise en veille en mémoire immédiate (-m mem) et un retour au bout d’une durée de 120 s (-s 120).
Cela ne répond sans doute pas à tout ton cahier des charges mais c’est peut être une piste

[quote=“ricardo”]Ce qui est bête AMA, c’est qu’on est capable de décider avec une simple prise-programmable de l’heure à laquelle une lampe sera allumée et ensuite éteinte, et on est incapable de faire la même chose avec un ordi :017
Je suppose que ça nécessite une impulsion électro-magnétique ?
Je ne connais rien en électronique.
Il n’existe pas un appareil capable de donner une telle “impulsion” à l’aide d’un courant électrique ?
Ou alors, je ne vois que le côté mécanique :
Un robinet ouvert au goutte à goutte qui remplit un récipient placé sur une balance type Roberval, avec un contre-poids sur l’autre plateau.
Arrivé à un certain niveau de remplissage, donc de masse d’eau, le plateau descends et touche un contact, lequel libère un marteau.
Le marteau, côté pointu, vient frapper violemment la touche “power” de l’ordi … qui s’allume.
Le calcul du temps de remplissage nécessaire à la descente du plateau est un jeu d’enfant. :laughing: :laughing: :laughing:
En écrivant cette connerie, je m’y voyais dans mon esprit.
Quand on étaient gamins, on faisait ça avec des circuits de billes et des demi roseaux en bascule… Ha ! la belle époque où la mécanique était un art :033[/quote]je pense qu’il y a moyen d’essayer avec un simple programmateur

avec deux subtilités :

  • pour le shutdown, on n’éteint pas totalement la machine > plutôt un “halt” donc. C’est le programmateur qui éteint complètement la machine.

  • pour le démarrage, on fait attention de bien régler dans le bios, l’option "Restore on AC Power Loss " (ou équivalent, cf. clubic.com/article-269516-5- … -bios.html) pour que lorsque le courant revient (programmateur) l’ordinateur retourne à son état antérieur (soit sous tension)

a tester :slightly_smiling:

j’y ai pensé…
le soucis est que, si je ne suis pas là (et genre avec un décallage horaire de 6h), je ne peux pas démarrer le serveur :frowning:.

Du coup, cela supprime un peu cette possibilité, où alors:
un microcontroleur qui est en interface web sur ma box.
Via des pings réguliers, il sait si le serveur est le dernier ordinateur du réseau allumé. si on est dans les plages horaires adéquates, il déclenche la mise à l’arret du serveur (pour avoir un arret propre) puis une fois le serveur arrété, il commande l’ouverture du relai electromécanique qui alimente la prise du serveur.
Et, via une commande adéquate, je peux demander au microcontroleur de refermer le relai, ce qui démarrera le serveur grace au bios.
La meme fermeture de relai interviendra lorsque l’on sera dans la bonne plage horaire.

Simple sur le papier… un peu moins techniquement (mais faisable sans grosse difficulté avec un minimum de matos).

Enfin bon, tt ca, visiblement, les commandes décrites si dessus peuvent le faire.
Le truc tel que je le vois, pourrai être un script executé lors de l’arret de mon pc qui envoit la commande en ssh:

shutdown -r 06:30 (redemarrage à 6h30).

Seul hic, c’est que je ne sais où placer ce script pour son execution “automatique” et j’ai encore quelques petits soucis à régler pour l’execution de commande via ssh, mais rien de compliquer je pense.

En principe le WOL est actif sur le serveur, il me faudrait ouvrir le port 9 (à confirmer) ou bien faire un reforwarding sur le broadcast…

Je vais tester ca…

eee-pc-900-et-power-on-by-rtc-alarm-c-est-possible-t44644.html

Alors
Pour le wake On Lan, c’est bon, je confirme qu’il faut ouvrir le port 9 en UDP
Pour rtcwake -m mem -s 120, cela à l’air de fonctionner, cependant j’ai l’impression que Apache et d’autres service n’ont pas trop aimé (je n’ai pas reussi à me connecter en ssh derriere et cela à terminer par un hard reboot). je vais fouiller dans le man et voir ce que propose les differentes options…

Aprés, restera plus qu’a mettre le tout dans un script coté pc perso et un autre sur le serveur (voir meme un seul sur le serveur si possible, mais là je ne sais comment faire).

La mise en veille avec linux, ça reste assez aléatoire suivant ton hardware.
Pour commander ton PC via un système externe, tu as l’IPX800, qui te fourni tout le hard et un soft pas trop mal pour un prix raisonnable.
gce-electronics.com/fr/57-carte- … 00-v3.html
Si tu couples tout ça avec un logiciel de domotique (domogik par ex), tu peux faire ce que tu veux, y compris le wake on lan.
Mais il te faut un petit serveur allumé 24/24 (type plug computer, conso de 5 w).

l’IPX800, pas mal, mais un peu “too much” pour ce dont j’aurai reelement besoin. (pas de volet elec, etc… pour rentabiliser l’affaire)
Sinon, c’est vraiment pas le truc le plus difficile à faire pour un electronicien standard :wink:

Pour en revenir à rtcwake, j’ai essayé l’option “off”, le serveur n’a rien fait… comme il est précisé que cela n’est pas toujours supporté, cela ne me choque pas
J’ai essayé l’option “disk”, qui à l’air fonctionnelle.

Reste à implementer le tout

Via une action Crontab, toutes les 10min entre 23h et 06h elle va executer le ‘scriptdodo’:
00/10 23-06 * * * scriptdodo.sh

Dans le ‘scriptdodo’:
-> je verifie que le serveur est le dernier actif sur le réseau et si c’est le cas, je fais le rtcwake
for ip in $(seq 2 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 1 ] && rtcwake… || : ; done

Mais au paravant, il faut que je convertisse en heure posix l’heure de reveil du lendemain
alors un date --date “tomorrow 06:30” +%s devrait faire l’affaire

privilèges root:

si “alarm_IRQ : no” réessaie avec “+ 120 minutes” jusqu’à obtenir “alarm_IRQ : yes”.

Pour le coup, tu as aussi dans mon script la formulation pour obtenir l’heure depuis le 01/01/1970