GNU/Linux >> Tutoriales Linux >  >> Linux

Consejos de Linux para usar cron para programar tareas

Hacer que las cosas sucedan en un horario regular y predecible es importante en las computadoras. Es importante porque, como humanos, a veces podemos ser malos para recordar hacer las cosas de manera confiable porque nos distraemos, tenemos demasiado en mente o estamos de vacaciones. Las computadoras son realmente buenas para hacer las cosas según un cronograma, pero un ser humano tiene que programar la computadora antes de que la computadora actúe.

En cierto modo, el cron system es una introducción fácil y rudimentaria a la programación. Puedes hacer que tu computadora haga lo que quieras que haga simplemente editando un archivo. Ni siquiera tiene que saber dónde se guarda el archivo. Solo tiene que escribir un comando simple, ingresar la "receta" que desea que siga su computadora y guardar su trabajo. A partir de ese momento, su computadora ejecuta sus instrucciones en el momento especificado hasta que se le indica que se detenga.

Por diseño, cron no es un sistema complejo. Esto es lo que necesita saber al respecto.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

¿Qué es cron?

El cron El comando es tan omnipresente en Linux y Unix, y se ha imitado y reinventado con tanta frecuencia que es casi un término genérico para algo que sucede en un horario . Es una forma de automatización, y aunque existen diferentes implementaciones (cron de Dillon, cron de Vixie, chrony y otros), y variaciones como anacron y los temporizadores systemd, la sintaxis y el flujo de trabajo se han mantenido esencialmente iguales durante décadas.

Cron funciona en un sistema de "spool", al igual que las impresoras y el correo electrónico. Si no sabía que las impresoras y el correo electrónico usan un spool, está bien porque el objetivo de un archivo de spool es que no debe pensar mucho en él. En un sistema Linux, el directorio /var/spool está diseñado como un eje central para archivos importantes pero de bajo nivel con los que el usuario no debe interactuar directamente. Uno de los spools administrados en /var/spool es cron tablas o "crontab" para abreviar. Cada usuario, incluido usted mismo, en un sistema Linux tiene un crontab. Los usuarios pueden editar, ver y eliminar su propio crontab. Además, los usuarios pueden usar su crontab para programar tareas. El cron el propio sistema supervisa los crontabs y se asegura de que cualquier trabajo enumerado en un crontab se ejecute en el momento especificado.

Editar configuración de cron

Puedes editar tu crontab usando el crontab comando junto con -e (para editar ) opción. Por defecto, la mayoría de los sistemas invocan el vim editor de texto. Si usted, como yo, no usa Vim, entonces puede configurar un editor diferente para usted en su ~/.bashrc expediente. Configuré el mío en Emacs, pero también puedes probar con Nano, Kate o cualquiera que sea tu editor favorito. El EDITOR La variable de entorno define qué editor de texto usas en tu terminal, mientras que VISUAL variable define qué editor usas en un modo gráfico:

export EDITOR=nano
export VISUAL=kate

Actualice su sesión de shell con su nueva configuración:

$ source ~/.bashrc

Ahora puedes editar tu crontab con tu editor preferido:

$ crontab -e

Programar una tarea

El cron es esencialmente un sistema de calendario. Puedes decirle a cron con qué frecuencia desea que se ejecute un trabajo utilizando cinco atributos diferentes:minuto, hora, fecha, mes, día de la semana. El orden de estos atributos es estricto y no necesariamente intuitivo, pero puede pensar en ellos como filtros o máscaras. De forma predeterminada, puede pensar que todo está configurado para siempre o cada . Esta entrada ejecutaría touch /tmp/hello en la parte superior de cada minuto durante cada hora de cada día durante todo el año:

* * * * * touch /tmp/hello

Puede restringir este programa integral estableciendo definiciones específicas para cada atributo. Para que el trabajo se ejecute en la marca de media hora de cada hora, establezca los minutos en 30 :

30 * * * * touch /tmp/hello

Puede restringir aún más esta instrucción con una hora específica. Este trabajo se ejecuta a las 3:30 a. m. todas las mañanas:

30 3 * * * touch /tmp/hello

También puede hacer que el trabajo se ejecute solo el primer día de cada mes:

30 3 1 * * touch /tmp/hello

Puede configurar un mes usando 1 para enero hasta 12 para diciembre, y puede configurar un día usando 0 para domingo hasta 6 para sábado. Este trabajo se ejecuta a las 3:15 durante el mes de abril, solo los lunes:

15 3 * 4 1 touch /tmp/hello

Establecer incrementos

Todas estas configuraciones coinciden con un valor exactamente . También puedes usar cron notación para ejecutar trabajos después de un paso de tiempo determinado. Por ejemplo, puede ejecutar un trabajo cada 15 minutos:

*/15 * * * * touch /tmp/hello

Podría ejecutar un trabajo a las 10 a. m. cada tres días:

* 10 */3 * * touch /tmp/hello

Podría ejecutar un trabajo cada seis horas:

* */6 * * * touch /tmp/hello

Taquigrafía de Cron

cron moderno Las implementaciones han agregado una abreviatura conveniente para los horarios comunes. Estos son:

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly or @annually

Lista de trabajos cron

Usando el crontab comando, puede ver una lista de su cron programado trabajos:

$ crontab -l
15 3 * 4 1 touch /tmp/hello

Eliminar un crontab

Cuando haya terminado con un crontab, puede eliminarlo con -r opción:

$ crontab -r -i

El -i opción significa interactivo . Le solicita confirmación antes de eliminar el archivo.

Qué puede hacer cron

Una cosa es saber cómo usar cron , pero otra cosa es saber para qué usarlo. El caso de uso clásico es un buen plan de respaldo. Si su computadora está encendida la mayor parte del día o todo el día y toda la noche, puede programar una copia de seguridad de rutina de una partición importante. Ejecuto una aplicación de respaldo llamada rdiff-backup en mi partición de datos principal todos los días a las 3 a. m.:

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

Otro uso común es el mantenimiento del sistema. En mi escritorio de Slackware, actualizo mi catálogo de repositorio local todos los viernes por la tarde:

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

También podría ejecutar un script de Ansible a las 15:00 cada tres días para ordenar mi carpeta de Descargas:

$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

Una pequeña inversión en la salud de su entorno informático es muy útil. Hay scripts de eliminación de duplicados, tamaño de archivo y /tmp monitores de directorios, redimensionadores de fotos, transferencias de archivos y muchas más tareas menores que puede programar para que se ejecuten en segundo plano para ayudar a mantener su sistema despejado. Con cron , su computadora puede cuidar de sí misma en formas que solo desearía que mi apartamento físico lo hiciera.

Recordar la configuración de cron

Además de pensar en por qué necesitas cron , lo más difícil de cron en mi experiencia ha sido recordar su sintaxis. Repítete esto una y otra vez hasta que lo hayas aprendido de memoria:

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Mejor aún, descargue nuestra hoja de referencia gratuita para tener la llave a mano cuando más la necesite.


Linux
  1. Consejos de Linux para usar GNU Screen

  2. 8 consejos para la línea de comandos de Linux

  3. Consejos y trucos para usar CUPS para imprimir con Linux

  4. Programación de tareas del sistema con Cron en Linux

  5. ¿Cómo configurar Automatizar tareas en un VPS de Linux usando Cron?

Consejos para usar el comando superior en Linux

Cómo automatizar tareas en Linux usando Crontab

Consejos para usar tmux

Consejos para usar la pantalla

Cómo programar una tarea en Plesk para Linux

Programar trabajos en Linux con el comando 'at'