Récupérer les tâches cron supprimées accidentellement avec crontab -r

64

Je suis entré crontab -rau lieu de crontab -eet tous mes cronemplois ont été supprimés.

Quel est le meilleur moyen (ou existe-t-il un) de récupérer ces emplois?

Teerath Kumar
la source
30
Est-ce juste moi ou ce serait plus logique pour crontab -r de demander oui / non par défaut ??
user1446688
4
Je pense qu'avoir une invite oui / non serait une bonne idée. D'autant plus que e & r sont juste l'un à côté de l'autre crontab -e.
JustinP
4
En 7 ans environ de travail administratif, cela ne m'est jamais arrivé. Maintenant j'ai peur. Il est temps de commencer à sauvegarder les crontabs régulièrement.
Caja
7
Cela m'est déjà arrivé deux fois. C’est la pire idée d’avoir jamais eu eà éditer et rà enlever avec absolument aucune invite !!
DaniG2k
9
Première chose à faire alias crontab=crontab -i. Mais crontab aurait dû faire ce défaut, étant donné que e & r sont côte à côte ...
anishsane

Réponses:

49

crontab -r supprime le seul fichier contenant les tâches cron.

Donc, si vous n'avez pas fait de sauvegarde, vos seules options de récupération sont:

  • Sous RedHat / CentOS, si vos travaux ont déjà été déclenchés, vous pouvez trouver le journal cron /var/log/cron. Le fichier vous aidera à réécrire les tâches à nouveau.
  • Une autre option consiste à récupérer le fichier à l'aide d'un outil de récupération de fichier. Cela risque toutefois moins de réussir, car la partition système est généralement occupée et les secteurs correspondants ont probablement déjà été remplacés.
  • Sur Ubuntu / Debian, si votre tâche a été exécutée auparavant, essayez grep CRON /var/log/syslog
SkyDan
la source
Je ne pouvais pas vous faire voter mais cette réponse était utile pour moi. Thankx
Teerath Kumar
1
@RajaRassani Vous pouvez cocher la réponse est correcte avec une coche, cependant. Merci pour vos commentaires!
SkyDan
cela m'est arrivé :) bummer ... j'utilise des serveurs virtuels et les sauvegarde régulièrement ... alors je vais lancer une sauvegarde .. et récupérer les crontabs supprimés
JustinP
+1 pour être simple:}
namezero
Vous pouvez tenter votre chance à la recherche d’une sauvegarde effectuée par l’éditeur dans /tmp/crontab.wpMhKS (bien entendu, le nom peut changer). Ce n'est peut-être pas la version la plus récente, mais dans mon cas, cela a beaucoup aidé
Jong Bor
21

Si vous n'avez pas de /var/log/cronfichier, vous pouvez récupérer les commandes (mais pas les timings) à partir du fichier syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

vous pouvez ensuite déterminer la plupart des minutages en consultant les horodatages.

Miaou
la source
1
Sur Ubuntu le fichier est /var/log/syslog.
Aurelijus Rozenas
@ Aurelijus Rozenas J'ai accidentellement ajouté sys au chemin du répertoire, il devrait être / var / log / syslog, j'ai corrigé mon post.
Meow
2
grep 'CRON.*(yourusername)' /var/log/syslog
aidan
@Aidin tu es mon sauveur! Remarque personnelle: ne modifiez jamais le fichier crontab lorsque l'espace du serveur est saturé.
Shadoath
1
Ouf c'était proche! J'ai maintenant ajouté un cron pour sauvegarder ma crontab tous les jours :)
SidJ
-5

vi /var/spool/cron/*user*ou si vous êtes l' rootutilisateur alorsvi /var/spool/cron/root

utilisateur120610
la source
3
C'est pire. Il édite les fichiers de spool sans notifier cronque le fichier a été modifié. Cela ne fonctionnera pas non plus lorsque l'utilisateur aura accidentellement supprimé leur crontabfichier car il n'y a aucun fichier à éditer.
Roaima
Upvote de ma part pour avoir indiqué l'emplacement de la crontab. J'avais une sauvegarde complète du système et pouvais facilement récupérer mes tâches cron. Merci!
Cookie