Comment puis-je planifier un redémarrage sous Linux?

38

Je suis nouveau dans Linux et je veux planifier un redémarrage à minuit. Comment devrais-je le faire?

Modifications:

  • Je suis désolé je n'ai pas mis les détails complets. Je veux un redémarrage tous les 3èmes samedis du mois à 23h30.

  • Je ne sais pas ce qui ne va pas mais je ne trouve pas crontab. Ce que j'est cron.d; cron.daily; cron.weekly; cron.monthly;

Je suis désolé pour la question noob. Pls m'aider. Merci.

Klauriens
la source
2
La vraie question est de savoir pourquoi vous voudriez le faire régulièrement, avez-vous une application qui fuit ou quelque chose? Si vous planifiez des redémarrages réguliers pour résoudre un problème, vous avez probablement un problème plus grave ...
JamesHannah
1
Voulez-vous qu'il redémarre toutes les nuits?
Matt Simmons
4
Je ne refuse pas, car c'est en quelque sorte une décision politique (et je pense que les redémarrages nocturnes sont un peu excessifs), mais la planification régulière des redémarrages sur une infrastructure est un moyen correct de s'assurer que les machines ont des noyaux à jour et tous les services en cours d'exécution. sont patchés. J'ai entendu dire qu'une limite de temps de disponibilité de 3 mois constituait un bon compromis.
Matt Simmons
S'il s'agissait d'un commentaire sur la question plutôt que d'une réponse, je l'y inviterais. En fait, je changerais d'avis, car la question était ambiguë de savoir si c'était une chose ponctuelle ou régulière. :)
intuitu
3
/etc/crontabl'entrée comme 30 23 15-21 * 6 /sbin/shutdown -r nowredémarrera à 23h30 le 3ème samedi de chaque mois.
Chris S

Réponses:

45

Tapez shutdown -r 0:00et il va redémarrer à minuit.

Si vous souhaitez redémarrer chaque nuit, ajoutez une entrée cron en utilisant crontab -e en tant que root pour exécuter shutdown -r tous les minuit.

@midnight shutdown -r now
rayon
la source
3
Un argument de temps est obligatoire, vous pouvez utiliser now.
Tobu
Non ... s'il veut une commande unique et veut taper la commande maintenant, il devrait ajouter l'heure!
rayon
3
@No, il faut un argument de temps tel que nowdans la ligne de crontab.
pause jusqu'à nouvel ordre.
Oups oui désolé, j'ai mal interprété le commentaire de Tobu et je pense qu'il a dit que 0:00 était inutile dans la première commande ... J'ai édité pour corriger (et Massimo répond aussi)
rayon
Je serais intéressé de savoir quelles autres @{command}variables sont disponibles.
Greg
16

Utilisation crontab.

http://en.wikipedia.org/wiki/Crontab

Ajouter cette entrée à / etc / crontab devrait faire:

0 0 * * * /sbin/shutdown -r now
Massimo
la source
3
shutdownnécessite un argument temporel tel quenow
pause jusqu'à nouvel ordre.
1
Cela fera le redémarrage chaque nuit. Je ne sais pas si c'est ce qu'il veut.
Cstamas
1
La question initiale donnait l'impression qu'il voulait le redémarrer tous les soirs. En fait, il veut qu'il soit redémarré tous les 3èmes samedis, ce qui serait encore plus facile avec une crontab
Chris S
Je ne sais pas ce qui ne va pas mais je ne trouve pas le fichier crontab ..? ce que j'ai est le cron.d; cron.daily; cron.weekly; mois par mois; Je suis désolé pour la question noob.Pls m'aidez. merci
klauriens
Cela dépend de la distribution que vous utilisez, mais vous devriez normalement trouver un fichier appelé "crontab" dans le répertoire / etc de votre système. Vous devriez également pouvoir examiner la crontab actuelle à l'aide de la commande "crontab -l" et la modifier à l'aide de "crontab -e".
Massimo
13

Une autre option est la commande at , disponible sur de nombreuses distributions Linux. Reportez-vous à la page de manuel pour plus d'informations, mais la syntaxe générale serait la suivante:

echo "reboot" | à 0000 27 juin

Pour citer la page de manuel OS X:

at - exécute les commandes à une heure précise

Cela ressemble à ce dont nous parlons. ;)

Zayne S Halsall
la source
1

Autant que je sache, vous ne pouvez pas utiliser cron pour planifier des tâches pour le "dernier vendredi de chaque mois" ou le "troisième jeudi de chaque mois". Ce que vous pouvez faire, aussi laid que cela puisse paraître, est de faire exécuter un script tous les samedis à 23h30, puis de le laisser déterminer si ce samedi est le troisième samedi de la semaine (vous pouvez utiliser des commandes de date et peut-être cal). .

J'espère que ça aide. Je n'ai pas trouvé de solution élagante à ce problème. J'ai trouvé ce fil, car je cherchais une solution au même problème.

ervingsb
la source
1
les commentaires ci-dessus de «30 23 15-21 * 6 / sbin / shutdown -r now» fonctionneront. En principe, il ne sera diffusé que la troisième semaine du mois, mais uniquement le samedi
Sirex
Je ne pense pas que cette ligne cron fonctionne comme vous le pensez.
ervingsb
J'ai créé les deux lignes suivantes: "30 23 1-7 * 4 date" et "30 23 1-7 * 3 date". J'ai reçu deux mails hier soir disant tous les deux: "Mer 7 jan 23 23:30:02 CET 2012"
ervingsb
le dernier champ correspond au jour de la semaine, zéro étant dimanche. le cronjob 4 ne devrait pas avoir assorti un mercredi.
Sirex
C'est ce que je voulais dire. La règle que vous avez écrite ne signifie pas ce que vous pensez que cela signifie. Cela déclenchera le travail tous les jours pendant une semaine. Peu importe le jour de la semaine.
ervingsb
0

1) sur le type de ligne de commande 2) une fois que vous savez où se trouve le redémarrage (généralement / sbin / reboot), insérez un des répertoires dans /etc/cron.daily, /etc/cron.weekly, / etc / cron. toutes les heures, etc.which reboot
cd /etc/cron.weekly

3) créez un fichier (avec nano ou vim), appelez-le zzreboot et ajoutez les lignes suivantes:

#! / bin / sh
/ sbin / reboot

Si vous souhaitez appeler le fichier zzwewise, vous devez vous assurer qu'il s'agit du dernier travail appelé après tous les autres travaux. Pour vous assurer qu'il suffit de faire un ls -ldans le répertoire et de vérifier que c'est le dernier fichier.

Shawn Bakhtiar
la source