Creé 3 trabajos cron diarios para ejecutar.
A continuación se muestran los tres que se colocan en etc / cron.daily
rkhunter.sh
#!/bin/sh
(
rkhunter --versioncheck
rkhunter --update
rkhunter --cronjob --report-warnings-only
) | mail -s 'rkhunter Daily Run (my server)' [email protected]
chkrootkit.sh
#!/bin/bash
chkrootkit | mail -s "chkrootkit Daily Run (my server)" [email protected]
logwatch.sh
#!/bin/sh
(
logwatch
) | mail -s 'logwatch Daily Log (my server)' [email protected]
Reemplacé [email protected] por supuesto con mi correo electrónico.
Si ejecuto este cronjob manualmente, funciona bien ./nameoffile.sh
Pero no funciona a diario, ¿cuál puede ser la causa o cómo puedo verificar esto?
command-line
email
cron
rkhunter
estampido supersónico
fuente
fuente
Respuestas:
Hay dos posibles sospechosos que generalmente provocan que los
cron
trabajos no puedan ejecutarse.El primero son los problemas de permisos, es decir, un usuario puede ejecutar el script / comando pero el demonio cron no puede porque el trabajo está en los trabajos cron del usuario incorrecto. Por ejemplo, el usuario crea un script o ejecuta un comando con privilegios elevados, es decir
sudo
, usa , luego agrega el script / comando probado a su lista de trabajos cron (crontab
). El resultado es que el trabajo cron del usuario no podrá ejecutarse ya que necesita privilegios elevados.crontab -e
sudo crontab -e
La segunda razón son las rutas, para asegurarse de que el script se ejecutará, el usuario debe agregar la ruta completa al script que se ejecutará en crontab. Otra solución sería expandir la variable PATH de los usuarios raíz colocando la siguiente línea en la parte superior de su archivo crontab:
como menciona el wiki de la comunidad .
Es posible que desee leer el wiki de la comunidad sobre cron, ya que proporciona más detalles sobre lo anterior.
fuente
Según esta respuesta, el problema radica en la extensión .sh. Elimine eso (por ejemplo, cambie el nombre de su archivo de rkhunter.sh a rkhunter.
Para confirmar ejecuta el siguiente comando
run-parts --test /etc/cron.daily
Si su script (rkhunter) está incluido en los resultados, todo está bien. Para obtener más información sobre el comando run-parts, lea las páginas man en él
man run-parts
fuente
man run-parts
"los nombres deben consistir completamente en letras mayúsculas y minúsculas ASCII, dígitos ASCII, guiones bajos ASCII y guiones menos ASCII"En mi sistema fue porque anacron no estaba instalado.
Así que instale anacron o elimine la prueba -x / usr / sbin / anacron
fuente
dpkg --get-selections | grep cron
.. <anacron
no es necesario el||
operador en los comandos crontab se ejecutarun-parts
cuando anacron NO está instalado. Cuandoanacron
se instala, hace que esosrun-parts
comandos diarios / semanales / mensuales sean redundantes.Creo que los archivos con extensiones se ignoran.
correr:
Si no ve sus scripts en la lista, elimine las extensiones .sh e intente nuevamente.
fuente
Agregando a la respuesta Stef, también debe asegurarse de que tengan el bit ejecutable:
Deberías poder ejecutarlos usando
chmod +x filename
.fuente
Cambie el nombre de su archivo para que no tenga la extensión .sh
Para verificar que este es el problema, intente
verá que no está en la lista. Entonces corre:
e intente enumerar nuevamente. Debería estar en la lista.
fuente
No pude ejecutarlo con anacron, eliminé el anacron
/etc/crontab
y lo ejecutéapt remove --purge anacron
y funciona de inmediato.No entiendo por qué necesitamos dos planificador.
fuente
La misma situación hoy aquí
yo hice
y encontrado
Descubrí que alguien (¡yo!) Agregó una línea que comienza con
¡y obviamente la hora 38 no existe!
fuente