El "cron"Daemon es una aplicación Linux incorporada que los usuarios de Linux utilizan para programar la ejecución de procesos. Cron busca el "mesas cron" o "crontabista"Para los archivos y scripts particulares. El archivo CRONTAB proporciona un conjunto de comandos que puede ejecutar regularmente. También proporciona los nombres de los comandos que se utilizan para administrar la lista de comandos. Crontabista También utiliza el planificador de Cronjob para llevar a cabo operaciones. Según un conjunto de instrucciones, Cron es una función del sistema que hará o ejecutará procesos para usted. Crontab es el nombre del horario, así como la utilidad que se utiliza para estas modificaciones.
En esta publicación, cubriremos los siguientes puntos relacionados con Crontab:
Así que vamos hacia este viaje!
Historia:
Cuando el sistema operativo habilitó el modo de usuarios múltiples para sus usuarios, se llamó al servicio del sistema CRON desde ""/etc/rc". Su algoritmo consiste en los siguientes pasos:
Esta versión de cron fue confiable y directo, pero utilizó recursos independientemente de si tenía algún trabajo que hacer. Durante un experimento de finales de la década de 1970 en la Universidad de Purdue, se descubrió que se extiende una Vax compartida en el tiempo Servicio de Cron a los 100 usuarios pusieron demasiada presión sobre el sistema.
Versiones modernas de Cron:
New Crons apareció con la introducción del proyecto Linux y GNU. El "Vixie cron", Creado por Paul Vixie en 1987, es el cron más común que existe. El Vixie cron La versión 3 se introdujo en el último trimestre de 1993. En enero de 2004, ISC Cron pasó a llamarse versión 4.1. La mayoría de las distribuciones de BSD y Linux usan la versión 3, que tiene algunas correcciones de errores menores. En 2007, Red Hat separó Vixie-Cron 4.1, y Anacron 2.3 se agregó en 2009. Anacron y Dcron son otras dos implementaciones prominentes. Anacron no es un programa cron independiente. Debe ser llamado por otro cronjob. Matt Dillon, el fundador de Dragonfly BSD, creó Dcron, y Jim Pryor se hizo cargo de su mantenimiento en 2010.
Dale Mellor creó MCRON, una versión de Cron basada en Guile que es compatible con Vixie Cron, en 2003. También permite una mayor flexibilidad al incluir cualquier código de esquema en descripciones de tareas y cálculos de programación. MCRON se instala de forma predeterminada bajo la administración de paquetes de Guix. También garantiza que se instalen los paquetes requeridos y que los crontabs relevantes se refieran correctamente a ellos. Cuando las implementaciones de Cron no se pueden acceder en un entorno de alojamiento web, una solución de WebCron establece tareas de anillo para ejecutar regularmente.
Que es un cronjob?
Cron es una herramienta que le permite programar tareas para la ejecución posterior. Es posible que desee usar otro comando si desea planificar un trabajo único para una fecha posterior. Al mismo tiempo, Cron es ideal para tareas recurrentes.
Puede estar familiarizado con los procesos de fondo en Windows, como los servicios. Cron es un demonio que realiza su funcionalidad al ejecutar las tareas en segundo plano. En un estado inactivo, el demonio espera realizar una tarea desde el sistema de trabajo o otro sistema basado en Linux presente en la red. Hablando sobre la estructura del archivo cron, tenemos un archivo cron, un archivo de texto simple que incluye comandos que se ejecutarán en la hora programada. El "/etc/crontab"Es el archivo CRONTAB del sistema predeterminado, que existe en el siguiente directorio CRONTAB:"/etc/cron.*/". Los administradores del sistema pueden modificar el archivo CRONTAB del sistema.
Los sistemas operativos basados en Linux admiten numerosos usuarios. Cada uno de ellos puede crear su archivo crontab y agregar comandos para ejecutar tareas siempre que deseen. Un Cron Daemon verificará el archivo CRONTAB, luego realizará el trabajo en segundo plano. También puede utilizar cronjobs para crear copias de seguridad, monitoreo del espacio de disco y para automatizar el mantenimiento del sistema. Las tareas cron son ideales para una máquina que ejecuta los siete días de la semana, las 24 horas del día. Si bien los administradores del sistema usan principalmente tareas cron, también pueden ser extremadamente valiosos para los desarrolladores web.
¿Por qué usar Cronjob??
Elementos de Cronjob:
La mayoría de los Cronjobs tienen tres partes:
La mayoría de los programas que necesitan el uso de un cronjob proporcionarán instrucciones detalladas sobre cómo configurarlo.
El archivo CRONTAB:
Una línea de archivo CRONTAB está "inactiva" o "activa". Una línea "activa" es una entrada de comando cron o un parámetro de entorno. Cualquier línea que se ignore, incluidos los comentarios, se considera "inactivo". Las pestañas, los espacios principales y las líneas en blanco no se tienen en cuenta. Líneas con el signo "#" como el primer personaje sin espacio se lee como comentarios e ignorados. En la configuración de la variable de entorno o los comandos cron, los comandos no pueden existir en la misma línea porque si hace esto, los comentarios se convierten en parte del comando cron.
CRONTAB funcionando:
Se pueden encontrar crontabs en el directorio local, como en "/var/spool" o "/var/spool/cron/crontabs", Que es su subdirectorio. Incluso si están presentes en cualquiera de estos lugares, use el comando crontab para lograr la tarea de editarlos. Descubriremos qué componentes se necesitan antes de que pueda esperar los resultados deseados de las acciones de Crontab. La entrada en el crontab debe estar presente en el primer comando. Los cinco parámetros indican su tiempo de ejecución y si debe ejecutarse o no. El CRONTAB se puede editar primero ingresando el modo de edición con el comando "crontab -e". Una vez que haya dado tiempo como entrada, el crontab está listo para ejecutarse en el momento especificado.
El Daemon Cron ayuda a realizar las verificaciones necesarias para que el comando crontab se pueda ejecutar en ese caso. Cada minuto, el daemon crontab verifica el crontab. Como resultado, este crontab contiene información hasta el minuto. Después de realizar el cheque, el comando asociado se ejecuta con los campos en el CRONTAB que coincide con la hora actual.
Se deben evitar situaciones como "horas faltantes" durante el ahorro de la luz del día porque es posible que el comando ni siquiera se ejecute una vez. Por otro lado, si el tiempo ocurre más de una vez, el comando puede incluso ejecutarse dos veces. Otro ejemplo es que un guión "-" puede realizar el Cronjob varias veces durante el día. Por ejemplo, si alguien desea realizar un Cronjob en la hora 10 y 11 del día, se puede usar el comando 10-11. Otro aspecto crítico de la ejecución de Cronjobs es la configuración para permitir que los trabajos se ejecuten. Permitir o negar a un usuario que realice cronjobs se puede lograr haciendo algunos cambios en el cron.Permitir o cron.Denegar archivos.
Uso de Crontab:
Linux System Pack ha incluido "Crontab" para la programación de trabajo. En consecuencia, ejecutar un script como root hace que las actualizaciones del sistema sean más fáciles de mantener. Es tan simple como cambiar el cronjob y, después de eso, espere el proceso de reinicio.
Sintaxis del crontab:
La sintaxis del CRONTAB comprende seis campos en los que los primeros cinco campos están relacionados con la fecha y hora de ejecución. Cada campo en un archivo CRONTAB existe en el siguiente orden:
(s) hora (s) hora (s) día (s) mes (s) mes (s) de lunes a viernes (s) comando (s)
Echa un vistazo a la siguiente sintaxis del comando crontab:
***** /pathtoscript
Caracteres especiales en expresión:
CRON SPECIAL STRINGS
El Cron Daemon tiene algunos atajos que facilitan las definiciones de trabajo.
Estas palabras tienen un significado preciso, y puede utilizarlas en la sintaxis en lugar de la especificación de fecha de 5 columnas. Los siguientes son algunos de los atajos de Cron:
@cada hora: Es lo mismo que "0 * * * *"Y ejecuta el comando al comienzo de cada hora.
@a diario: Es lo mismo que "0 0 * * *"Y ejecuta el comando una vez al día, a las 12 a.metro. (medianoche).
@semanalmente: Es lo mismo que "0 0 * * 0"Y ejecuta el comando todas las semanas el domingo a medianoche.
@mensual: Es lo mismo que "0 0 1 * *”Y ejecuta el comando a las 12 a.metro. (medianoche) El primer día de cada mes.
@anual: Es lo mismo que "0 0 1 1 *"Y ejecuta el comando una vez al año el 1 de enero a la medianoche.
@reiniciar: Cada vez que se reinicie el sistema, este comando se ejecutará.
Variable ambiental:
Cuando Cron ejecuta un trabajo, un entorno que establece una línea en el Crontab puede establecer variables de entorno.
En el crontab, se puede agregar una configuración de entorno como:
nombre = valor
Los espacios son opcionales alrededor "valor". Además, adjunta está la cadena en citas para mantener los espacios en blanco o los principales en blanco.
Cron establece algunas variables de entorno para usted automáticamente:
Variables de Crontab:
Algunas de las variables cron más utilizadas regularmente se enumeran a continuación:
Opciones de comando crontab:
Instalación de Cron en Centos:
Por defecto, Cron se incluye en Centos 8. Por alguna razón, si aún no lo tiene, instálelo en su sistema:
$ sudo dnf instalación cron
$ sudo systemctl Enable - -Now Crond.servicio
$ sudo systemctl status crond
Programador de Crontab: en todo el sistema
Regularmente, la mayoría de los servicios usan crontab. Los servicios utilizan su configuración de crontab programador directamente al "/etc/cron.d"Directorio. Después de eso, el planificador ejecutará automáticamente los archivos presentes en este directorio. Las siguientes son las carpetas preconfiguradas de Crontab: "/Etc/cron.por hora ","/etc/cron.diariamente ","/etc/cron.semanalmente ", y"/etc/cron.mensual". Los administradores de Linux tienen un control total sobre estos directorios. Al mismo tiempo, el planificador atraviesa y ejecuta estos archivos crontab regularmente. Además, si los usuarios raíz quieren ejecutar algo, por ejemplo, quiere ejecutar un script en particular todos los días, colocará el archivo dentro del "/etc/cron.a diario"Directorio.
Acceso cron:
Puede asignar control sobre la ejecución de cualquier archivo utilizando cron. Evaluar esta funcionalidad utilizando los siguientes archivos:
/etc/cron.permitir: Permitir
/etc/cron.denegar: Denegar
Cosas a tener en cuenta:
Gestión de Crontab:
Como hemos discutido CRONTAB anteriormente, es un archivo en particular que contiene el cronograma de trabajos ejecutado por Cron. Por otro lado, estos trabajos no están destinados a editarse directamente. El comando crontab se recomienda para este propósito. El comando CRONTAB le permite editar el CRONTAB relacionado con su perfil de usuario sin la necesidad de cambiar sus privilegios. Este comando también le notificará los errores presentes en el crontab, lo que no sería posible si se edite directamente. Utilice el siguiente comando para editar su crontab:
$ crontab -e
En los sistemas Linux, "/ etc/ directorio"Contiene otro archivo CRONTAB. En la ubicación mencionada, existe un CRONTAB en todo el sistema que incluye un campo que especifica qué privilegios de un perfil de usuario para ejecutar Cronjobs. Utilice el siguiente comando para cambiar el crontab de todo el sistema:
$ sudo nano /etc /crontab
El otro método más fácil para acceder y editar el archivo CRONTAB es utilizar el "nano" editor. Hacer "nano"Su editor predeterminado siguiendo estos pasos:
$ nano ~/.bash_profile
Agregue la siguiente línea al inicio del archivo abierto:
Export Visual = "Nano"
Guarde la línea agregada en el " ~/.bash_profile"Y salir. Después de eso, recargar el "~/.bash_profile" archivo.
ps . ~/.bash_profile
Ahora, escriba este comando para agregar cronjobs:
$ crontab -e
Este es el archivo CRONTAB, donde guardaremos todos nuestros cronjobs:
Para ver el contenido del archivo CRONTAB, utilice el siguiente comando:
$ crontab -l
Nota: Actualmente, no hemos agregado ningún cronjob en el archivo CRONTAB para imprimir cualquier cosa.
Para eliminar los Cronjobs programados en el archivo CRONTAB, escriba este comando:
$ crontab -r
14 Ejemplos de Cronjob:
Ejemplo 1: Ejecución de Cronjob cada 50 minutos
El siguiente comando CRONTAB ejecutará el "actualizadob"Después de cada 50 minutos:
50 * * * * ActualatedB
Ejemplo 2: ejecución de Cronjob en tiempo y meses especificados
CONTAB Ejemplo para ejecutar /usr/local/bin/testScript.mierda a las 8:00 p.metro. el 20 de enero, febrero, marzo y abril:
00 08 20 1,2,3,4 */usr/local/bin/testScript.mierda
Ejemplo 3: Ejecución de Cronjob en cada viernes 1 p.metro.
El comando otorgado a continuación permitirá que el sistema ejecute el "testScript.mierda"Todos los viernes, 1 P.metro.:
0 01 * * fri /scripts /testScript.mierda
Ejemplo 4: Ejecución de Cronjob en cada minuto
Para ejecutar un script en particular después de cada minuto, consulte la sintaxis de este comando:
* * * * * * /scripts /testScript.mierda
Ejemplo 5: ejecución de Cronjob en días especificados
A continuación se muestra un ejemplo que lo ayudará si desea programar un Cronjob para ser ejecutado en días particulares. Este ejemplo ejecutará el "testScript.mierda”Los lunes y miércoles a las 2 p.metro.:
0 02 * * lon, wed /script /testScript.mierda
Ejemplo 6: Ejecución de Cronjob el primer lunes de cada mes
El parámetro de tiempo no es suficiente para establecer en este ejemplo. Utilizaremos una condición para especificar que el script en particular debe ejecutarse en el primer lunes de cada mes:
0 2 * * lon [$ (fecha +%d) -le 07] && /script /testScript.mierda
Ejemplo 7: Ejecución de Cronjob en cada 10 segundos
Nuevamente, especificaremos una condición para ejecutar el Cronjob cada 10 segundos:
* * * * * * /scripts /script.mierda
* * * * * duerme 10; /scripts/script.mierda
Ejemplo 8: Ejecución de Cronjob para múltiples tareas
Use (;) para configurar CRON para ejecutar múltiples comandos de la siguiente manera:
* * * * * /scripts /testScript1.mierda; /scripts/testScript2.mierda
Ejemplo 9: Ejecución de Cronjob al comienzo de cada año usando "@Yearly"
Ejecutar una tarea en el primer minuto de un año nuevo es útil en el caso en que tenga que enviar deseos de año nuevo a alguien."0 0 1 1 *"Es similar a la marca de tiempo"@anual":
@Yearly /scripts /testScript.mierda
Ejemplo 10: Ejecución de Cronjob al comienzo de cada mes usando "@Monthly"
Puedes usar el "@mensual"Timestamp para ejecutar las tareas mensuales, como la facturación a los clientes y pagar facturas:
@Monthly /Scripts /TestScript.mierda
Ejemplo 11: Ejecución de Cronjob al comienzo de cada semana usando "@Weekly"
Ejecute cualquier tarea al comienzo de la semana, como la limpieza del sistema utilizando el "@semanalmente"Marca de tiempo. "semanalmente" es equivalente a "0 0 * * lon":
@weekly /bin /testScript.mierda
Ejemplo 12: Ejecución de Cronjob al comienzo de cada mes usando "@Daily"
"@a diario"La marca de tiempo es equivalente a"0 0 * * *". Se utiliza para ejecutar el diario basado en tareas:
@daily /scripts /script.mierda
Ejemplo 13: ejecución de Cronjob al comienzo de cada hora usando "@Hourly"
"@cada hora"La marca de tiempo es equivalente a"0 * * * *". Puede utilizar esta marca de tiempo para ejecutar tareas por hora:
@hourly /scripts /testScript.mierda
Ejemplo 14: Ejecución de Cronjob para el reinicio del sistema
"@reiniciar"Es útil para las acciones que desea ejecutar siempre que el sistema arranca. Es útil para lanzar automáticamente tareas en segundo plano. Este tipo de cronjob se usa para programar los scripts de inicio.
@reboot /scripts /testScript.mierda
Creación de Cronjob para usuario específico
Para programar un Cronjob para un usuario en particular, especifique su nombre de la siguiente manera:
***** Nombre de usuario /path_to_script
Ahora, vamos a ver un ejemplo rápido:
50 * * * * Linuxhint actualizadob
Este comando ejecutará el "actualizadob"Después de cada 50 minutos para el"Linuxhint"Usuario.
Enumerando Cronjobs:
Use este comando para enumerar los cronjobs programados en su sistema:
$ crontab -l
Creación de respaldo de Cronjobs:
Para crear una copia de seguridad de los cronjobs programados, utilice este comando:
$ crontab -l> cron -backup.TXT
Verifique el contenido del "Cron-Backup.TXT"Para asegurarse de que los cronjobs estén respaldados o no:
$ Cat Cron-Backup.TXT
Retire los cronjobs:
Método 1: sin aviso
El "crontab -rEl comando se usa para eliminar cronjobs:
$ Crontab -r
Método 2: con aviso
La ejecución del siguiente comando le mostrará un mensaje antes de eliminar el CRONTAB:
$ crontab -i -r
Gestión de la salida de Cronjob:
Como hemos mencionado en la introducción de Cronjob, estos trabajos operan en segundo plano. Esa es la razón por la que no siempre es evidente si han completado la tarea con éxito o no. En este punto, tiene alguna comprensión relacionada con la programación de Cronjob y su uso. Ahora, puede experimentar con varias formas de redirección de salida de los Cronjobs. Esta redirección lo ayudará a rastrear la funcionalidad de Cronjobs.
Por ejemplo, puede enviar la salida de CronJobs a la dirección de correo electrónico asociada con su perfil de usuario de Linux si tiene un agente de transferencia de correo instalado y configurado en su servidor, como "Enviar correo". En comparación, un "Mailto"La configuración en la parte superior del crontab también se puede utilizar para proporcionar direcciones de correo electrónico manualmente. Agregue las siguientes líneas a su archivo CRONTAB, en el que tenemos un "MailtoDeclaración seguida de mi dirección de correo electrónico, una directiva de inicio que se refiere al directorio donde se debe encontrar el binario cron, una sola tarea cron y una CAPARAZÓN Directiva que indica que la carcasa se ejecuta, que es BASH en nuestro caso.
Mailto = "[email protected] "
Shell =/bin/bash
Inicio =/
50 * * * * Linuxhint actualizadob
* * * * * * echo 'Ejecute este comando cada 50 minutos'
Esta tarea devolverá el mensaje "Ejecute este comando cada 50 minutos". La salida se enviará por correo electrónico a la dirección de correo electrónico especificada presente en el "Mailto"Directiva. Para evitar recibir un correo electrónico con el resultado, puede redirigir la salida de la tarea cron a una ubicación o archivo de registro vacío.
Para enviar la salida de un comando programado a un archivo de registro: anexar >> Al final del comando, con el nombre y la ruta del directorio que contiene el archivo de registro, como se muestra a continuación:
* * * * * * echo 'Ejecute este comando cada 50 minutos' >>/directorio/path/file.registro
Hemos creado un archivo de registro de muestra para este propósito, por lo que escribiremos este comando de la siguiente manera:
* * * * * * echo 'Ejecute este comando cada 50 minutos' >> /testFile /samplefile.registro
Límites de Cronjob:
Servidor dedicado y vps: En este caso, no existe restricción a tiempo para la ejecución de Cronjob.
Compartido y revendedor: Un Cronjob no puede ejecutarse más de una vez cada 15 minutos.
Manejo de errores de Cronjob:
Método 1: usando /dev /null
En lugar de recibir una alerta de correo electrónico, puede enviar fácilmente nuestros errores de Cronjob y registrarse a Dev/NULL. Todo lo que enviamos o escribimos a Dev/Null se descarta.
* * * * * * cd /home /linuxhint && /bin /bash shell-testscript.sh> /dev /null 2> y 1
Método 2: Enviar salida a un archivo en particular
Es un método popular, y la mayoría de los usuarios prefieren este método. En este método, debe crear un archivo para guardar los registros de CronJob. Si el trabajo se completa con éxito, imprimirá la salida; De lo contrario, imprimirá un error.
Hemos creado un archivo de registro de muestra para este propósito, por lo que escribiremos este comando de la siguiente manera:
* * * * * * cd /home /linuxhint && /bin /bash shell-testscript.SH >> Muestra.registro
Aquí:
Generadores de sintaxis para crontab:
A partir de la demostración del ejemplo, puede determinar qué tan fácil es programar un cronjob. A veces, no puedes memorizar una sintaxis de Cronjob en particular. Para que el trabajo sea aún más manejable, hay pocos generadores de sintaxis basados en la web para cron para usted. Ahora, hablaremos sobre algunos sitios web que generan expresiones crontab. Estas expresiones se basan en sus aportes. Simplemente copie/pegue la línea en el archivo CRONTAB de su sistema después de generar la expresión de CRONTAB de acuerdo con sus requisitos.
Generador de Crontab:
Crontab Generator es una herramienta basada en la web que le permite crear expresiones crontab más rápido y sin esfuerzo. Este sitio web comprende un formulario con varias entradas.
El usuario tiene que completar todos los campos esenciales en los formularios. En los campos, puede seleccionar el valor para el comando de sintaxis según su requisito:
Luego, esta herramienta de generador de Crontab emitirá un comando en la siguiente sección resaltada. Copie el comando generado, péguelo en su archivo CRONTAB y haya terminado!
Crontab Guru:
Este sitio web está personalizado para proporcionar ejemplos de ejemplos de cronjobs. Solo tiene que ingresar su información en el sitio web y generará sintaxis de Crontab en unos minutos.
Cronmaker:
Es otro sitio web que también se basa en el propósito de generar sintaxis del comando Cronjob:
Front-end gráficos para crontab:
Algunas utilidades front-end de Crontab están disponibles para crear tareas cron utilizando una interfaz gráfica de usuario. Para administrar o agregar tareas cron, no hay necesidad de actualizar el archivo CRONTAB desde la línea de comandos. Estas herramientas harán que la administración de Cronjobs sea muy fácil!
Zeit:
Cañón es una aplicación gratuita creada en el lenguaje de computadora C ++. Según la licencia GPLV3, se puede acceder al código fuente de esta aplicación en GitHub. Es un QT basado en el QT "crontabista" y "en"Comando front-end. Podemos utilizar ZEIT para las siguientes tareas:
CRONTAB UI:
Crontab UI es una solución basada en la web para administrar Cronjobs en Linux con facilidad y seguridad. No tiene que editar el archivo CRONTAB manualmente para crear, eliminar y administrar tareas cron. Con algunos clics del mouse, puede hacer todo en este navegador web. La interfaz de usuario de Crontab hace que sea simple crear, editar, detener, eliminar y hacer una copia de seguridad de las tareas cron. También juega su papel en importar, exportar e implementar cronjobs a otras máquinas.
Conclusión:
Cron es una herramienta versátil y poderosa que puede ayudarlo con una variedad de tareas de administración del sistema. Puede automatizar operaciones que normalmente se complican con scripts de shell. Este artículo comprende una guía de CONTAB completa para principiantes, que discutió todo, incluido el trabajo en Crontab, su uso, su instalación en CentOS, ejemplos prácticos de CRONJOBS y Generadores de sintaxis de Crontab.