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?


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

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.


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.