Recuperar trabajos cron eliminados accidentalmente con crontab -r


64

Entré en crontab -rlugar de crontab -ey todos mis crontrabajos han sido eliminados.

¿Cuál es la mejor manera (o hay alguna) de recuperar esos trabajos?


30
¿Soy solo yo o no tendría más sentido que crontab -r pregunte sí / no por defecto?
user1446688

44
Creo que tener un sí / no sería una gran idea. especialmente porque e & r están uno al lado del otro ... y crontab -ees un comando cron realmente común.
JustinP

44
En más de 7 años de trabajo administrativo nunca me ha pasado esto. Ahora tengo miedo. Es hora de comenzar a hacer copias de seguridad de los crontabs regularmente.
Caja

77
Esto ya me ha pasado dos veces. ¡Es la peor idea que se haya tenido epara editar y reliminar sin absolutamente ningún aviso!
DaniG2k

99
Lo primero que hay que hacer alias crontab=crontab -i,. Pero crontab debería haber hecho ese valor predeterminado, dado que e & r están uno al lado del otro ...
anishsane

Respuestas:


49

crontab -r elimina el único archivo que contiene los trabajos cron.

Entonces, si no realizó una copia de seguridad, sus únicas opciones de recuperación son:

  • En RedHat / CentOS, si sus trabajos se han activado antes, puede encontrar el inicio de sesión cron /var/log/cron. El archivo lo ayudará a reescribir los trabajos nuevamente.
  • Otra opción es recuperar el archivo usando una herramienta de recuperación de archivos. Sin embargo, es menos probable que tenga éxito, ya que la partición del sistema suele estar ocupada y los sectores correspondientes probablemente ya se han sobrescrito.
  • En Ubuntu / Debian, si su tarea se ha ejecutado antes, intente grep CRON /var/log/syslog

No podría votarte, pero esta respuesta fue de alguna manera útil para mí. thankx
Teerath Kumar

1
@RajaRassani Sin embargo, puede marcar la respuesta correcta con una marca de verificación. ¡Gracias por la retroalimentación!
SkyDan

esto me acaba de pasar :) un fastidio total ... Yo uso servidores virtuales y los respaldo regularmente ... así que voy a hacer una copia de seguridad ... y obtener los crontabs eliminados
JustinP

+1 por ser sencillo:}
namezero

Puede probar suerte buscando una copia de seguridad realizada por el editor en /tmp/crontab.wpMhKS (por supuesto, el nombre puede cambiar). Puede que no sea la versión más reciente, pero en mi caso ayudó mucho
Jong Bor

21

Si no tiene ningún /var/log/cronarchivo, puede recuperar los comandos (pero no los tiempos) del syslog.

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

A continuación, puede averiguar la mayoría de los tiempos mirando los sellos de fecha.


1
En ubuntu el archivo es /var/log/syslog.
Aurelijus Rozenas

@ Aurelijus Rozenas Accidentalmente agregué sys a la ruta del directorio, debería ser / var / log / syslog, corrigí mi publicación.
Miau

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

@Aidin eres mi salvador! Nota personal: nunca edite el archivo crontab mientras el espacio del servidor esté lleno.
Shadoath

1
Uf que estaba cerca! Ahora agregué un cron para respaldar mi crontab todos los días :)
SidJ

-5

vi /var/spool/cron/*user*o si eres el rootusuario entoncesvi /var/spool/cron/root


3
Esto es peor Edita los archivos de cola sin notificar cronque el archivo ha sido editado. Tampoco funcionará cuando el usuario haya eliminado accidentalmente su crontabporque no hay ningún archivo para editar.
roaima

Voté de mi parte por indicar realmente la ubicación del crontab. Tenía una copia de seguridad completa del sistema y podía recuperar fácilmente mis cronjobs. ¡Gracias!
Cookie
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.