Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2278 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Reboot serveur automatique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] Reboot serveur automatique

n°1342078
Omar Cheif​rai
Posté le 25-07-2013 à 09:25:58  profilanswer
 

Bonjour,
 
J'ai deux serveurs linux identiques que je souhaite faire rebooter dans la nuit du jeudi à vendredi alternativement.
Exemple pour le mois d'aout par exemple : le 2 à 2h00, le serveur 1 reboot, le 9 ce sera le serveur 2, le 16 ce sera de nouveau le serveur 1 etc ...
Donc les serveurs rebooteront TOUTES les 2 semaines.
 
Je souhaite passer par Crontab (ai je le choix ?)
 
 
je pensais inscrire cette ligne : 00 02 * * 4/2 usr/bin/reboot> /dev/null 2>&1
Ai-je bon ?
Sachant que je suis une quiche lorraine en Linux, j'ai surement mal interprété le Wiki sur Crontab http://fr.wikipedia.org/wiki/Crontab
 
Merci d'avance !


Message édité par Omar Cheifrai le 02-08-2013 à 14:46:15
mood
Publicité
Posté le 25-07-2013 à 09:25:58  profilanswer
 

n°1342208
Omar Cheif​rai
Posté le 26-07-2013 à 14:13:01  profilanswer
 

Personne n'a d'avis ? Ou peut etre que c'est pas clair mon explication :s

n°1342218
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 26-07-2013 à 15:39:57  profilanswer
 

pourquoi rebooter les serveurs toutes les 2 semaines ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1342220
Omar Cheif​rai
Posté le 26-07-2013 à 15:57:12  profilanswer
 

une histoire de cache à vider et de validation que tout refonctionne en cas de reboot intempestif ou voulu

n°1342319
roscocoltr​an
L'enfer c'est les utilisateurs
Posté le 29-07-2013 à 11:27:56  profilanswer
 

Je ne suis pas sûr de la syntaxe avec les jours de la semaine. Le mieux c'est de tester dans une machine virtuelle en changeant la date, ou de poser un flag à l’exécution et de tester son âge dans ta ligne cron. Si plus ancien qu'1 semaine -> exécution.


---------------
"Your god is too small", Giordano Bruno, 1548 - 1600
n°1342419
Omar Cheif​rai
Posté le 31-07-2013 à 09:30:07  profilanswer
 

Un collègue me propose de faire en fonction des semaines paires et impaires en lançant un script tous les vendredi et ça donnerais :
 
if [ $(($date +"%U" ) % 2)) -eq 0 ]
then
le reboot
fi
 
 
ça semble logique dans mon esprit, mais dans le votre ? :D

Message cité 1 fois
Message édité par Omar Cheifrai le 31-07-2013 à 09:30:34
n°1342424
bardiel
Debian powa !
Posté le 31-07-2013 à 10:38:05  profilanswer
 

Mouais, ça me paraît bizarre aussi de devoir rebooter toutes les 2 semaines, et par défaut j'opterais pour une inscription "en dur" dans le cron sur chaque serveur [:spamatounet]

 

Pour rappel les champs de cron sont :
- minute
- heure
- jour du mois
- mois
- jour de la semaine
Aussi le cron ne s'édite qu'avec la commande crontab -e, surtout ne pas l'éditer directement avec vi/vim/nano car la commande lance un verrouillage en exécution des crons en cours. Si t'édites et que tu as un cron qui se lance au moment de l'enregistrement, ça peut être folklorique :D

 

Du genre serveur 1 :

Code :
  1. 00 02 02 * * usr/bin/reboot> /dev/null 2>&1
  2. 00 02 16 * * usr/bin/reboot> /dev/null 2>&1


Serveur 2 :

Code :
  1. 00 02 09 * * usr/bin/reboot> /dev/null 2>&1
  2. 00 02 23 * * usr/bin/reboot> /dev/null 2>&1


Reboot donc à 2h du matin (heure sur le serveur) :
- serveur 1 les 2 et 16 de chaque mois
- serveur 2 les 9 et 23 de chaque mois

 

Mais bon encore une fois, bizarre de redémarrer un serveur pour vider du cache et revalider quelque chose, alors qu'il doit y avoir moyen de le faire plus proprement qu'un reboot à l'arraché. Idem le coup du "usr/bin/reboot> /dev/null 2>&1" alors qu'il faudrait balancer ça dans un fichier de log à part histoire de vérifier par la suite qu'il n'y a pas de problème.
Dis-nous plutôt de quel(s) genre(s) de serveurs il s'agit...


Message édité par bardiel le 31-07-2013 à 10:41:25

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1342427
goblin_rie​ur
ingé systemes unix
Posté le 31-07-2013 à 11:13:46  profilanswer
 

redémarrer trop souvent est un peu "stupide" dans le cas général.
c'est même un risque puisqu'il y a des sollicitations particulières lors du reboot, au niveau du hard....genre des petits pics de courants ce genre de chose qui accélèrent la fin de la durée de vie naturelle des composants...(je sais c'est de l'ordre du négligeable en théorie)
 
parenthèse amusante :

redémarrer un serveur tous les 15 jours j'ai connu qu'une fois dans ma vie (c'est la 15iaime année que je travail...), et c'était la femme de ménage qui avait pour instruction d'utiliser une prise bien précise pour son aspirateur et un jour sur cette prise il y a eu une rangée de serveur... et on a vu qu'il redémarrait tous 15jours le jeudi soir  aléatoirement entre 18 et 19h....ça a du prendre genre 6 mois pour comprendre  le défaut....et entre temps bien sur ... on eu droit à tout.... des disques qui ont lâches.... des boot échoués... des filesystems corrompus....etc...etc....on a même fini par accuser le fabriquant pour avoir fournie une serie défectueuse puisque seule le boitier à la fin n'avait pas été remplacé....  
parce qu'on comprenait pas d'où ça venait forcément on a tout changé...  
en 2004 dans une industrie très connue mondialement de l’électronique, cette histoire est désormais célèbre dans le monde du SI.

fin de la parenthèse amusante...
 
rebouter de façon planifiée.... perso je préconiserai plus un arrêt machine. surtout avec une si forte fréquence, puis la machine qui est "up" envoi un wake-on-lan 30 minutes plus tard à la machine éteinte....c'est déjà moins risqué...
 
sinon tu peux garder ton principe de base, mais réduit la fréquence... genre tous les 2 mois... ou faire les deux (arrêt complet+réduire la fréquence)
 
-----------------------------------
 
maintenant pour revenir à l'histoire des caches à vider... ça se gère très bien au niveau software sans reboot ça.....
un simple script qui fait un arrêt/redémarrage de certains services et/ou applications et qui purge les caches entre les deux actions.... voir même mieux qui stoppe l'action des applications/services sans les couper, purgent et libèrent les activités naturelles des applications/services concernés....
 
ce qui est une bien meilleurs méthode... par contre oui là faut apprendre un peu plus profondément linux, et l'architecture soft des machines que tu as en charge... c'est long et rébarbatif si tu es débutant mais ça vaut le coup de s'y pencher.
 
 
 
 


---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
n°1342428
goblin_rie​ur
ingé systemes unix
Posté le 31-07-2013 à 11:25:37  profilanswer
 

Omar Cheifrai a écrit :

Un collègue me propose de faire en fonction des semaines paires et impaires en lançant un script tous les vendredi et ça donnerais :
 
if [ $(($date +"%U" ) % 2)) -eq 0 ]
then
le reboot
fi
 
 
ça semble logique dans mon esprit, mais dans le votre ? :D


 
 
y'a encore plus simple... suffit que les machinent flagueut...(un fichier dans /var.... par exemple) le quel des deux à rebooter le dernier et donc seul l'autre à droit de rebooter cette fois ci....
 
bien sur l’intérêt de faire un flag c'est que si il y a des reboot manuels entre temps ça ne perturbe pas la sélection planifiée  
alors que le coup du date... il suffit que le serveur ne soit pas à la bonne date pour une raison X ou Y pour que ça perturbe le truc...(je sais ça arrive jamais ... ou presque) mais je suis un peu parano :hello:


---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
n°1342445
Omar Cheif​rai
Posté le 31-07-2013 à 14:20:48  profilanswer
 

Merci de vous intéresser à mon problème :)
 
Ce sont des serveurs qui font office de "cache" pour de la donnée financière (flux marché)
Le reboot est une préconisation du fournisseur de service qui a mis en place l'appli sur le serveur. Ils préconisent des faire d'ailleurs des reboot toutes les semaines ... mais on (le client) préfère les faire rebooter alternativement pour ne pas se retrouver en carafe si ça plante pour une raison X ou Y.
 
Pour la commande crontab -e uniquement, merci de l'info, je n'aurais pas pu me douter du problème que ça engendrerait avec vi !
 
@bardiel, il ne sera pas possible de les faire rebooter a des dates précises car il faut que ce soit obligatoirement dans la nuit du jeudi au vendredi (avec le décalage des jours selon les mois, ça pourrait rebooter le lundi soir et faire planter le truc jusqu'au mercredi (cas extrême) et le retour en prod serait impacté et les pertes financières catastrophiques)
 
@goblin-rieur Je peux pas mettre la main dans l'appli du presta. Ils en sont responsables tout ça. D'où le besoin de reboot car dans leur préconisation.

Message cité 1 fois
Message édité par Omar Cheifrai le 31-07-2013 à 14:21:49
mood
Publicité
Posté le 31-07-2013 à 14:20:48  profilanswer
 

n°1342446
Omar Cheif​rai
Posté le 31-07-2013 à 14:23:21  profilanswer
 

Pour info, je me suis monté un CentOS 6.4 sur une bécane virtuelle et faire des tests  
(j'en ai déjà chié pour configurer le réseau sans passer par la gui de l'install  :o )

Message cité 1 fois
Message édité par Omar Cheifrai le 31-07-2013 à 14:23:34
n°1342447
goblin_rie​ur
ingé systemes unix
Posté le 31-07-2013 à 14:40:54  profilanswer
 

oui donc là effectivement le crontab est une bonne solution.


---------------
Collectionner les vieux serveurs c'est chouette mais c'est lourd et ça prend de la place ;)
n°1342449
roscocoltr​an
L'enfer c'est les utilisateurs
Posté le 31-07-2013 à 14:51:27  profilanswer
 

Omar Cheifrai a écrit :

Pour info, je me suis monté un CentOS 6.4 sur une bécane virtuelle et faire des tests  
(j'en ai déjà chié pour configurer le réseau sans passer par la gui de l'install  :o )


Tu peux mettre ton test dans la ligne cron elle-même si tu veux garder ça compact.


---------------
"Your god is too small", Giordano Bruno, 1548 - 1600
n°1342450
Omar Cheif​rai
Posté le 31-07-2013 à 15:03:48  profilanswer
 

roscocoltran a écrit :


Tu peux mettre ton test dans la ligne cron elle-même si tu veux garder ça compact.


 
Comment ça ?
tout se passe pas dans le fichier dédié du crontab dans /var/spool/cron/root ?

n°1342452
bardiel
Debian powa !
Posté le 31-07-2013 à 15:12:30  profilanswer
 

Omar Cheifrai a écrit :

@bardiel, il ne sera pas possible de les faire rebooter a des dates précises car il faut que ce soit obligatoirement dans la nuit du jeudi au vendredi (avec le décalage des jours selon les mois, ça pourrait rebooter le lundi soir et faire planter le truc jusqu'au mercredi (cas extrême) et le retour en prod serait impacté et les pertes financières catastrophiques)


Ah ça, tu ne nous l'avait pas précisé, juste un reboot toutes les 2 semaines.
Dans ce cas, je taperais un truc du genre pour le serveur 1 :

Code :
  1. 00 02 1-7 * 5 usr/bin/reboot> /dev/null 2>&1
  2. 00 02 15-21 * 5 usr/bin/reboot> /dev/null 2>&1


Serveur 2 :

Code :
  1. 00 02 8-14 * 5 usr/bin/reboot> /dev/null 2>&1
  2. 00 02 22-31 * 5 usr/bin/reboot> /dev/null 2>&1


Pour avoir tous les mois, à 2h du matin :
- serveur 1 : entre le 1er et le 7, un vendredi -> reboot. Entre le 15 et le 21, un vendredi -> reboot.
- serveur 2 : entre le 8 et le 14, un vendredi -> reboot. Entre le 22 et le 31, un vendredi -> reboot.
C'est un peu crade, mais ça devrait faire le taf :o
 
Autrement tu fais par script, quelques pistes ici.

Message cité 1 fois
Message édité par bardiel le 31-07-2013 à 15:15:34

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1342453
roscocoltr​an
L'enfer c'est les utilisateurs
Posté le 31-07-2013 à 15:13:48  profilanswer
 

ce que je veux dire c'est que tu peux mettre ton test dans la ligne contab:
 
# Run the `monday` command every monday at 2 AM
0 2 * * 1 /usr/local/bin/monday
 
là tu n'es pas forcé de juste mettre l'appel du script mais tu peux déjà insérer le test de ton flag. dans ce style
 
0 2 * * 4 test $(date +\%u) -eq 2 && /sbin/shutdown -r now


---------------
"Your god is too small", Giordano Bruno, 1548 - 1600
n°1342454
Omar Cheif​rai
Posté le 31-07-2013 à 15:23:58  profilanswer
 

bardiel a écrit :


Ah ça, tu ne nous l'avait pas précisé, juste un reboot toutes les 2 semaines.
Dans ce cas, je taperais un truc du genre pour le serveur 1 :

Code :
  1. 00 02 1-7 * 5 usr/bin/reboot> /dev/null 2>&1
  2. 00 02 15-21 * 5 usr/bin/reboot> /dev/null 2>&1


Serveur 2 :

Code :
  1. 00 02 8-14 * 5 usr/bin/reboot> /dev/null 2>&1
  2. 00 02 22-31 * 5 usr/bin/reboot> /dev/null 2>&1


Pour avoir tous les mois, à 2h du matin :
- serveur 1 : entre le 1er et le 7, un vendredi -> reboot. Entre le 15 et le 21, un vendredi -> reboot.
- serveur 2 : entre le 8 et le 14, un vendredi -> reboot. Entre le 22 et le 31, un vendredi -> reboot.
C'est un peu crade, mais ça devrait faire le taf :o
 
Autrement tu fais par script, quelques pistes ici.


 
 
Merci pour le lien, je vais zieuter.
 
Par contre, avec ton idée de caler le reboot à des tranche de dates, ça ne marchera pas les mois ou ils y a 5 fois le même jour (genre aout 2013) :(

n°1342455
Omar Cheif​rai
Posté le 31-07-2013 à 15:26:49  profilanswer
 

roscocoltran a écrit :

ce que je veux dire c'est que tu peux mettre ton test dans la ligne contab:
 
# Run the `monday` command every monday at 2 AM
0 2 * * 1 /usr/local/bin/monday
 
là tu n'es pas forcé de juste mettre l'appel du script mais tu peux déjà insérer le test de ton flag. dans ce style
 
0 2 * * 4 test $(date +\%u) -eq 2 && /sbin/shutdown -r now


 
Oui ok, je vois ce que tu veux dire (je crois :) )

n°1342466
bardiel
Debian powa !
Posté le 31-07-2013 à 21:05:35  profilanswer
 

Omar Cheifrai a écrit :

Par contre, avec ton idée de caler le reboot à des tranche de dates, ça ne marchera pas les mois ou ils y a 5 fois le même jour (genre aout 2013) :(


 [:transparency]  
En août 2013 les vendredis sont le 2, 9, 16, 23, 30.
En demandant les vendredis uniquement dans les tranches :
- 1-7 -> j'ai le 2
- 8-14 -> 9
- 15-21 -> 16
- 22-31 -> 23 et 30.
Effectivement, un reboot de trop [:manust]  
 
Bon, go taper sur le flag alors.


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1342522
Omar Cheif​rai
Posté le 01-08-2013 à 17:03:28  profilanswer
 

bonjour à tous,
 
Voice le resultat finalement et qui est fonctionnel  
 
Crontab serveur 1 et 2

Code :
  1. 0 2 * * 5 /var/spool/cron/monscript.sh > /dev/null 2>&1


 
monscript.sh serveur 1
 

Code :
  1. num=$(date +"%U" )
  2. rest=$(($num % 2))
  3. if [ $rest -eq 0 ]
  4. then
  5. /sbin/shutdown -r now
  6. fi


 
monscript.sh serveur 2
 

Code :
  1. num=$(date +"%U" )
  2. rest=$(($num % 2))
  3. if [ $rest -ne 0 ]
  4. then
  5. /sbin/shutdown -r now
  6. fi


 
Et ça fonctionne au poil :)
Merci de votre aide dans tous les cas !


Message édité par Omar Cheifrai le 01-08-2013 à 17:04:27
n°1342653
roondar
Posté le 03-08-2013 à 15:36:27  profilanswer
 

Plutôt que passer par un script.
Serveur 1:

Code :
  1. 0 2 * * 5 expr `date +\%U` \% 2 > /dev/null && /sbin/shutdown -r now


Serveur 2

Code :
  1. 0 2 * * 5 expr `date +\%U` \% 2 > /dev/null || /sbin/shutdown -r now


Message édité par roondar le 03-08-2013 à 15:40:53
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [RESOLU] Reboot serveur automatique

 

Sujets relatifs
Débit serveur Debian soudainement extrêmement faibleAcceder serveur virtuel depuis extérieur
Envoi d'email depuis l'application Mail avec serveur mail sur VPSMonitorer un serveur Mysql distant avec Nagios
[Bash] Script de clean automatique de compte FTPPc, jeux ubisoft,réinstal obligatoire Driver a chq reboot !?
Mise en place d'un serveur Jabber sur Linux Debianconfiguration postfix sur serveur web
mise en place d'un serveur mail sur debianSquid sur serveur débian
Plus de sujets relatifs à : [RESOLU] Reboot serveur automatique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR