Guía de cron: qué es y cómo utilizarlo mejor
Cron y crontab son dos aplicaciones nativas muy importantes de los sistemas tipo Unix, que permiten programar las tareas que se van a realizar de forma periódica..
Cron es extremadamente útil para realizar una gran variedad de operaciones: Supongamos, por ejemplo, que se gestiona un servidor remoto, con la necesidad de vaciar a una hora indecente (por ejemplo, a las 3 de la mañana) la carpeta de registro del cortafuegos. Gracias a Cron y crontab no será necesario levantarse y conectarse al servidor remoto, sino que se podrá «ordenar» al sistema operativo que lo haga de forma autónoma.
Sin embargo, Cron y crontab no son lo mismo: crontab es la aplicación que -en términos sencillos- permite a los usuarios programar operaciones, mientras que cron es el demonio que se acuerda de ejecutarlas. Básicamente, cron «vigila» ciertas carpetas (que varían de un sistema a otro) para ejecutar operaciones.
Veamos cómo utilizar y configurar cron y crontab.
Guía de cron
Comprender si cron se está ejecutando en el sistema
Aunque algunas distribuciones (en particular las que todavía se basan en upstart) no lo han abandonado, es posible que las distribuciones más modernas, basadas en Systemd, hayan sustituido cron por los propios temporizadores de Systemd. Para comprobar que el servicio cron está activo (debe serlo para que la programación funcione) en una distribución basada en systemd, abra un terminal y escriba
systemctl status cron
y asegúrese de que la salida (específicamente la línea que define el servicio «Activo») tiene el siguiente aspecto:
Para verificar que cron está activo en los sistemas operativos basados en upstart, simplemente escriba
service cron status
Programar un comando con cron/crontab
Crontab es el nombre de la aplicación y al mismo tiempo el nombre de los archivos utilizados para ejecutarla; para evitar confusiones, en esta guía definiremos crontab la aplicación y «archivo cron» archivos de configuración. De hecho, los «cronfiles» son archivos con una sintaxis muy específica que «instruyen» a cron sobre qué hacer y cuándo.
Existen dos tipos de crontabs/archivos de control: los locales, es decir, los relacionados con las operaciones realizadas en el nivel de ejecución del usuario, y los del sistema, que deben residir en carpetas específicas y que definen operaciones que también pueden realizarse en el nivel de ejecución del núcleo. La diferencia es sutil pero muy importante en términos de seguridad:: en el CRÓNICAS DEL SISTEMA puede hacer que se realicen operaciones con el privilegios de rootmientras que en el archivo cronológico del usuario cada operación especificada en ellos se ejecuta sólo con el permisos del usuario que programó las operaciones..
Empecemos por entender cómo escribir un archivo cronfile de usuario. Para proceder sin problemas, primero debemos definir:
- el comando/operación a ejecutar;
- el día o los días de la semana para ejecutarlo;
- la frecuencia de ejecución anual (¿cada mes? ¿meses concretos?);
- frecuencia de ejecución mensual (¿todos los días del mes? ¿sólo días concretos?).
- el ritmo de ejecución diario (¿a qué horas? ¿cada cuántos minutos?).
Como ejemplo, supongamos que queremos utilizar cron/crontab para crear un «despertador» que reproduzca un archivo de audio diariamente. Las preguntas anteriores, en nuestro ejemplo, se responderían así:
- el comando a ejecutar es vlc (/usr/bin/vlc) para reproducir un archivo llamado Tfpa.mp3 (en /home/malefika/music);
- El despertador debería sonar. todos los días de la semana, Domingo excluido;
- el despertador debe estar encendido durante todo el mes de marzo;
- el despertador debe sonar todos los días del mes (Se excluyen los domingos, pero esto se trata en el punto superior);
- el despertador debe sonar a las siete en punto todos los días.
Para «alimentar» a crontab y así activar esta rutina, todo debe ser traducido siguiendo la sintaxis precisa del cronfile, que tiene una plantilla similar a la que se ve a continuación – una línea para cada comando y una última línea vacía, lo cual es importante porque de lo contrario cron no ejecutará las rutinas:
minuto(0-59) ora(0-23) giorno(mese,1-31) mese(1-12) giorno(settimana,0-6) comando 1
minuto(0-59) ora(0-23) giorno(mese,1-31) mese(1-12) giorno(settimana,0-6) comando 2
minuto(0-59) ora(0-23) giorno(mese,1-31) mese(1-12) giorno(settimana,0-6) comando 3
riga vuota (altrimenti il cron non va)Los días de la semana deben asociarse a los números del 0 al 6, siendo el 0 = domingo y el 6 = sábado; evidentemente, también es posible especificar el comodín (el asterisco, *) que significa «todos». No se recomienda en absoluto utilizar el comodín en el campo de los minutos, porque de lo contrario se corre el riesgo de ejecutar la misma operación en bucle.
También puede especificar periodos espaciados pero bien definidospor ejemplo: si quiere realizar la operación en los meses de marzo, abril y julio, puede escribir en el campo del mes la cadena «03,04,07» (sin comillas);
Para seguir perfectamente la plantilla de crontab, traduzcamos en «pseudocódigo» el despertador que queremos poner:
- el comando: /usr/bin/vlc /home/malefika/musica/Tfpa.mp3
- el período semanal (todos los días de la semana, excepto el domingo): 01,02,03,04,05,06
- el período anual (sólo en marzo): 03
- el período mensual (todos los días): *
- la hora (a las 7, recordando que sintácticamente los minutos van primero): 00 07
Ahora sólo tienes que leerlo todo de abajo a arriba, separar cada línea de la lista en la parte superior con un espacio, y ahí tienes la línea para que la alarma se ejecute como un comando, lista para ser copiada en nuestro cronfile:
00 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/Tpfa.mp3
Para estar seguros, pongamos un segundo despertador (con una canción diferente) para que suene un cuarto de hora más tarde:
15 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/sveglia2.mp3
El archivo cron para el despertador está ahora completo; todo lo que tienes que hacer es copiar las dos líneas en un archivo de texto plano vacío en tu directorio personal…
00 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/Tpfa.mp3
15 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/sveglia2.mp3
riga vuota (altrimenti il cron non va)…y guardarlo como Despierta, también en la página de inicio. Ahora todo lo que queda es invocar el comando crontab para añadir la alarma al demonio que gestiona el crontab (crond), de modo que cron pueda ejecutarla cuando lo desee. Desde el terminal, simplemente escriba
cd ~ crontab cronsveglia
Si todo ha ido bien, las operaciones se añadirán a cron. Ahora sólo tienes que reiniciar el servicio: si estamos en un sistema basado en systemd, tendrá que escribir
sudo systemctl restart cron
mientras que en los sistemas basados en Upstart tendrá que escribir
sudo service crontab restart
Por último, para verificar que el crontab se ha añadido, tendrá que escribir desde el terminal:
crontab -l
El resultado debería ser algo parecido a esto:
malefika:~$ crontab -l
00 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/Tpfa.mp3
15 07 * 03 01,02,03,04,05,06 /usr/bin/vlc /home/malefika/musica/sveglia2.mp3
En cambio, para eliminar todos los crons activos relacionados con el usuario actual, simplemente escriba el comando
crontab -r
Para más detalles, le remitimos a las páginas del manual de cron
man 8 cron #per cron man crontab #per crontab man 5 crontab #per i file di configurazione
TIPO: también hay un servicio online que permite crear crontab en unos pocos clics, útil para tenerlo siempre disponible, lo puedes encontrar en esta página.
Cuál es el tamaño en pixeles de las hojas a4 a3 a2 a1 y a0 en funcion de los ppp
Cómo eliminar una cuenta de Facebook sin contraseña y correo electrónico
Cómo saber quien esta detrás de un perfil de instagram
Cómo saber quien canceló el mensaje en instagram
Cómo saber si el Iphone está hackeado
Cómo instalar IPTV en el Fire TV Stick
Qué hacer si las imágenes desaparecen de la galería en Android
Spotify cracked IOS 2021, ¿Cómo instalarlo?
Cómo copiar el enlace a tu perfil de instagram
Cómo saber quien esta detrás de un perfil de Facebook
Resolver los problemas con la luz roja LOS en el router
Cómo averiguar el id de la MI cuenta en tu smartphone Xiaomi
Cómo instalar IPTV en el Fire TV Stick
Cómo cambiar el correo electrónico de id de Supercell
Cómo desbloquear canales de Iphone Telegram
Cómo ocultar a quién sigo en instagram
Cómo solucionar el error requiere acción con la cuenta de Google
e_fail 0x80004005 error en Virtualbox, causas y soluciones
Cómo poner tu nombre en una lista de WhatsApp
Cómo eliminar su cuenta Shein
Resolver los problemas con la luz roja LOS en el router
Cómo ver cuántos mensajes hay en un chat
Cómo desbloquear canales de Iphone Telegram
Cómo enviar fotos o vídeos que se autodestruyen en Telegram
Cómo descargar historias de Facebook desde el PC
