Para aquellos que están familiarizados con el sistema Unix, también estarán familiarizados con la aplicación cron que le permite programar y automatizar tareas para que se ejecuten por su cuenta. Incluso tenemos tutoriales que le muestran cómo comenzar con cron y crontabs. Sin embargo, cron no es perfecto, ya que requiere que su sistema esté funcionando las 24 horas del día. Si tiene la costumbre de apagar su computadora por la noche y un trabajo cron está programado para las horas de sueño, la tarea no se ejecutará. Afortunadamente, hay varias alternativas de cron que pueden hacer un mejor trabajo que cron. Echémosles un vistazo.
1. Anacron
Anacron es un programador de comandos periódicos como cron. La única diferencia es que no necesita que tu computadora esté siempre funcionando. Puede programar su tarea para que se ejecute en cualquier momento. Cuando su computadora está apagada, la tarea se ejecutará la próxima vez que encienda la computadora.
Para comenzar, simplemente instale anacron
en tu sistema Está disponible en la mayoría de los administradores de paquetes. Use el siguiente comando para instalar en Ubuntu:
Anacron funciona de manera similar a cron. Puede agregar su trabajo a la /etc/anacrontab
expediente.
La sintaxis para agregar un trabajo es
period delay-after-computer-start job-identifier command
Por ejemplo, para ejecutar un script de respaldo todos los días, puede agregar el siguiente comando:
1 15 cron.daily /bin/sh /home/ramces/backup.sh
La desventaja de anacron es que solo se ocupa de tareas en un horario diario, semanal o mensual. No se puede utilizar para un horario por horas o minutos.
2. Compañero
Otra brillante alternativa de cron que puedes instalar hoy es Compañero. A diferencia de las entradas anteriores, Cronie es un pequeño paquete de software que tiene como objetivo proporcionar una experiencia cron completa. Para hacer eso, Cronie incluye el paquete anacron por defecto. Esto significa que cronie puede proporcionar una programación de trabajos sincrónica y asincrónica lista para usar.
Además, la instalación de cronie es relativamente sencilla. Primero, necesita obtener el código fuente del programa de su página de Github:
wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz
Una vez hecho esto, descomprima el archivo ejecutando tar en la terminal:
cd Downloads tar xvzf cronie-1.6.1.tar.gz
Desde allí, ve al directorio de Cronie y compila el código fuente del programa:
cd cronie-1.6.1/ ./configure make sudo make install
Una vez hecho esto, ahora puede usar Cronie para administrar los trabajos cron en su máquina. Similar a anacron y cron, puede crear un trabajo cron ejecutando crontab -e
. Esto le permitirá editar el crontab de su usuario específico. Sabiendo eso, Cronie también sigue el formato estándar:
* * * * 0 /your/command/here
3. fcron
fcron es lo mejor de cron y anacron. No requiere que su computadora esté funcionando las 24 horas del día, los 7 días de la semana, y puede trabajar con tareas por hora o por minuto.
La única forma de instalar Fcron es descargar el archivo fuente y compilarlo usted mismo.
- Descargar el archivo fuente aquí.
- Extraiga el archivo. Abra una terminal y cambie la ruta del archivo a la carpeta del archivo extraído.
- Ejecute los siguientes comandos:
./configure make sudo make install
Le hará algunas preguntas durante la instalación y puede responder con seguridad «y» (sí) para todas ellas.
Para comenzar a crear un trabajo fcron, simplemente escriba fcron -e
en la terminal
La sintaxis de fcron es similar a cron:
minute hour day-of-month month day-of-week command-to-be-executed
y viene con más opciones que cron, como configurar una tarea para que se ejecute entre un intervalo de tiempo.
Para aquellos que prefieren una GUI, pueden consultar fcronq
4. cron
Bcron es una alternativa simple y moderna al programa cron estándar. Al igual que Cronie, bcron tiene como objetivo proporcionar un conjunto de software que gestione la programación de trabajos de su sistema. Lo hace separando todas las funciones de los componentes de cron en sus propios programas respectivos. Esto, a su vez, permite que bcron sea altamente modular y seguro.
Con eso, instalar bcron es increíblemente fácil. En eso, si está usando Debian o Ubuntu, puede instalar el programa a través de apt:
Una vez hecho esto, ahora puede usar bcron para programar tareas en su sistema. Para hacer eso, primero debe ejecutar el siguiente comando para habilitar el programa:
envdir /etc/bcron bcron-start envdir /etc/bcron bcron-update /etc/crontab /etc/cron.d
El primer comando iniciará bcron en su sistema, mientras que el segundo le indicará a bcron que abra y actualice los archivos crontab y cron.d. A partir de ahí, la sintaxis para crear una nueva tarea es similar tanto a anacron como a cronie. Por ejemplo, puedo escribir la siguiente línea para decirle a bcron que ejecute mi script cada 5 a. m. el día 1 de cada mes:
0 5 1 * * /my/monthly/script.sh
5. Hcron
Hcron es relativamente desconocido, pero eso no lo hace menos útil. De hecho, viene con varias características que lo hacen único. Por ejemplo, puede etiquetar y organizar fácilmente sus trabajos de tipo cron, administrar una red de computadoras y los archivos crontab de sus usuarios, realizar copias de seguridad fácilmente y controlar la versión de sus trabajos de tipo cron.
Para instalar hcron, descargar el archivo .deb (o archivo .rpm, dependiendo de su sistema Linux) e instálelo en su sistema.
Hcron almacena cada evento como un archivo de texto sin formato. Para comenzar, simplemente cree un archivo de texto con el comando:
hcron-event /path/to/event-file.txt
En el editor de texto que se abre, puede completar los detalles del evento.
Hay muchas más cosas que puedes hacer con hcron y es recomendable descargar el guía del usuario para tener una mejor comprensión de cómo funciona.
6. intermediario
Corredor es un programador de tareas escrito en GO y es una herramienta más poderosa que cron. Cuenta con un historial de ejecución de trabajos con estado, controlando si un trabajo se ejecuta nuevamente después de que falla y cuándo, y recibe notificaciones sobre cada ejecución fallida o solo sobre los trabajos que se deshabilitaron debido a fallas repetidas.
Para instalar Jobber, debe asegurarse de que GO esté instalado en tu sistema A continuación, escriba los comandos:
cd /path/to/your/go/workspace go get github.com/dshearer/jobber make -C src/github.com/dshearer/jobber
Después de la instalación, inicie Jobber con el comando:
sudo /usr/local/sbin/jobberd start
Para crear trabajos, cree un archivo llamado «.jobber» en su directorio de inicio y agregue el trabajo en el siguiente formato:
- name: #Enter the job name here cmd: #the command to run time: #as the same as cron format onError: #Stop | Backoff | Continue notifyOnError: #false | true notifyOnFailure: #false | true
Como puede ver en el formato, le permite definir las acciones a tomar cuando tiene errores («Detener», «Retroceder» o «Continuar») y si debe notificarle cuando falla.
Una vez que haya actualizado la lista de trabajos, use jobber reload
para que Jobber vuelva a cargar la nueva lista.
En cualquier momento, puede utilizar jobber log
para ver una lista de ejecuciones recientes de cualquier trabajo.
7. micrones
Mcron es un programa de programación de tareas rápido e innovador para Linux. Similar a los programas anteriores, mcron tiene como objetivo brindarle una forma simple de administrar los scripts y programas que desea ejecutar en su sistema. A diferencia de los programas anteriores, mcron también tiene como objetivo redefinir la programación de tareas mediante la reconstrucción de trabajos cron desde cero.
Con eso, instalar mcron es increíblemente simple. Está disponible tanto en Debian como en Ubuntu y puede obtenerlo fácilmente ejecutando lo siguiente:
Una vez hecho esto, ahora puede comenzar a usar mcron como su programador. Para hacer eso, primero debe crear el directorio donde mcron buscará sus tareas:
mkdir /home/$USER/.config/ touch /home/$USER/.config/cron
A partir de ahí, ahora puede editar este archivo cron para que contenga todos los trabajos que desea que realice mcron. A diferencia de los programas anteriores, mcron utiliza una sintaxis alternativa para programar:
(job '(type '(range)) "command")
- los
job
La función le dice a mcron que esta línea de Lisp contiene una tarea que necesita programar. - los
type
yrange
son listas que contienen la información de tiempo para mcron. En eso, el tipo controla la escala en la que operará mcron mientras que el rango determina el intervalo de tiempo para esa escala. - Por último, el
command
es una cadena que le dice a mcron qué comando o programa necesita ejecutar.
Con eso, puedo escribir lo siguiente en mi archivo .config/cron para ejecutar mi script una vez por hora durante tres horas al día:
(job '(next-hour '(1 4 8)) "my-script.sh")
Preguntas frecuentes
¿Es posible usar la sintaxis cron normal con mcron?
Además de ser un programador de tareas innovador, mcron también pretende ser compatible con versiones anteriores de la sintaxis cron anterior. Como tal, también puede usar una sintaxis similar a crontab para su archivo .config/cron. Por ejemplo, puedo escribir la siguiente línea para decirle a mcron que quiero ejecutar mi script una vez al día a la medianoche:
0 0 0 * * /path/to/my/script.sh
Sin embargo, una cosa importante a tener en cuenta es que escribir sus tareas programadas de esta manera no le permitirá usar las funciones más amplias y flexibles de mcron.
¿Es posible evitar que cron envíe correo a mi cuenta de usuario?
Es posible evitar que cron envíe cualquier correo del sistema a su usuario. Para hacer eso, deberá editar su crontab y proporcionar un MAILTO
variable con un valor de nobody
. Por ejemplo, este es un extracto de un crontab donde he deshabilitado el correo del sistema:
MAILTO=nobody * * 1 * * /first/script/here.sh 0 0 * * * /second/script/here.sh
Sabiendo eso, también puede usar esta sintaxis para redirigir la salida crontab de otro usuario a un usuario diferente. Por ejemplo, puede configurar fácilmente esta variable en el crontab del usuario raíz para obtener el resultado de todas las tareas programadas que se están ejecutando.
¿Cuál es la mejor alternativa de cron para mí?
Si bien esta es una pregunta muy subjetiva, una buena alternativa de cron debería poder hacer todo lo que pueda necesitar para su caso de uso específico. Por ejemplo, es posible que desee considerar el uso de programadores de tareas más simples, como anacron y cronie, si solo planea usar cron para tareas básicas ocasionales.
Por otro lado, un programador de tareas más flexible y potente, como mcron, le permitirá crear secuencias de comandos y definir el comportamiento del propio cron. Sin embargo, usar mcron incluso para tareas básicas puede ser desalentador para el principiante no iniciado.
Credito de imagen: Unsplash