
Tengo un servidor con ubuntu 14.04. En /var/log/auth.log hay algún tipo de proceso automatizado que se ejecuta cada hora y quiero saber cuál es el proceso.
Ya he determinado que ningún usuario ha programado trabajos cron. Todo lo que tengo que seguir son las siguientes líneas de ejemplo en auth.log cada hora:
Dec 2 03:17:01 fi CRON[23537]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec 2 03:17:01 fi CRON[23537]: pam_unix(cron:session): session closed for user root
Dec 2 04:17:01 fi CRON[23557]: pam_unix(cron:session): session opened for user root by (uid=0)
¿Alguna idea sobre cómo rastrear esto?
Respuesta1
Ya he determinado que ningún usuario ha programado trabajos cron.
Probablemente te perdiste las tareas cron de todo el sistema en /etc/crontab
y /etc/cron.d/*
.
Si parece que no hay ninguno, puede adjuntarlo strace
al proceso cron para ver qué archivos lee o qué comandos ejecuta:
strace -p 23537 -e file
strace -p 23537 -f -e execve [-s 10000]
En sistemas más antiguos, es posible que cron se haya compilado sin soporte de recarga automática, por lo que si alguien eliminaba manualmente los trabajos de /etc/crontab pero no recargaba cron, continuarían ejecutándose hasta que alguien activara una recarga.
Respuesta2
Puedes usaratop
.
Cuando se instale, comenzará a contar automáticamente los procesos y su uso de recursos y escribirá los datos en los archivos de registro. Puede esperar un poco para recopilar suficientes datos y luego inspeccionar los registros o analizarlos.
Por ejemplo, después de recopilar registros, para comprobar qué proceso se estaba ejecutando, recomendaría el siguiente comando:
atop -r /var/log/atop/atop_<current date> -b 03:16 -e 03:18 -P PRG | grep -P 'PRG.*\s23557\s\('
Esta voluntad:
- Lea el archivo de registro del día actual entre las 03:16 y las 03:18
- Genere los datos en una salida analizable por máquina con datos genéricos sobre los procesos (esto incluirá el nombre del proceso)
- Busque la línea donde se contabilizó el proceso con PID 23557 para que pueda ver cuál es el nombre del proceso, entre corchetes. El patrón grep es para mayor precisión: la línea siempre comienza con
PRG
, las columnas de valores están separadas por espacios (PID es una columna separada) y la columna después de PID es el nombre del proceso entre corchetes (comienza con(
).