Eliminar todos los trabajos `at`


32

Sé que para eliminar un attrabajo programado tengo que usar atrm "numjob1 numjob2", pero ¿hay una manera fácil de hacerlo para todos los trabajos?

Respuestas:


31

Puede ejecutar este comando para eliminar todos los trabajos en atq

 for i in `atq | awk '{print $1}'`;do atrm $i;done

2
variación de esta respuestaat -l | awk '{printf "%s ", $1}' | xargs atrm
Sergiy Kolodyazhnyy

10

Podrías hacer algo como esto:

for i in $(atq | cut -f 1); do atrm $i; done

En FreeBSD su cut -f3primera columna es la fecha
David Jashi



1

Aquí está mi versión xargs que evita los frenos y es de esperar intuitiva:

atq | cut -f 1 | xargs atrm

También puede seleccionar trabajos específicos por marca de tiempo / ID de usuario y luego eliminarlos:

atq | grep "2018-10-22 16:" | cut -f 1 | xargs atrm

0

Tenía más de 58k trabajos en el atd (alguien reinició el servidor y por alguna razón el servicio atd no se inició). Eliminar los trabajos usando atrm es muy doloroso para una cola muy alta.

Detuve atd y eliminé todos los directorios de / var / spool / atjobs y los archivos de / var / spool / atspool . Para mí funcionó.

rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*

Nunca dices nada sobre comenzar de atdnuevo, y si eso fue exitoso, ni mencionas para qué Unix sería una solución adecuada. ¿Cómo se aseguró de que los trabajos de otros usuarios no fueran eliminados?
Kusalananda

¡Okay! ¡Lo siento! Necesito iniciar atd después del proceso. Mi solución es para "SUSE Linux Enterprise Server 12". Pero creo que puede usarse en otras distribuciones. Encontré la información de directorios en "man". En mi situación, solo root está usando atd, luego eliminar los archivos fue seguro.
Felipe
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.