GNU/Linux >> Tutoriales Linux >  >> Linux

Use anacron para un mejor crontab

En 2021, hay más razones por las que la gente ama Linux que nunca. En esta serie, compartiré 21 razones diferentes para usar Linux. La automatización es una de las mejores razones para usar Linux.

Una de mis cosas favoritas de Linux es su voluntad de trabajar para mí. En lugar de realizar tareas repetitivas que consumen mi tiempo, o que son propensas a errores, o que es probable que olvide, programo Linux para que las haga por mí.

Preparación para la automatización

El término "automatización" puede ser tan intimidante como atractivo. Creo que es útil abordarlo de forma modular.

1. ¿Qué quieres que suceda?

Primero, sepa qué resultado desea producir. ¿Estás marcando imágenes con marcas de agua? ¿Eliminar archivos de un directorio desordenado? ¿Está realizando una copia de seguridad de los datos importantes? Defina claramente la tarea para que sepa a qué apuntar. Si hay alguna tarea que realiza todos los días, mucho menos más de una vez al día, entonces podría ser candidata para la automatización.

2. Conozca las aplicaciones que necesita

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

Divida grandes tareas en pequeños componentes y aprenda a producir cada resultado de forma manual, pero de forma repetible y predecible. Mucho de lo que se puede hacer en Linux se puede programar, pero es importante reconocer sus limitaciones actuales. Hay un mundo de diferencia entre aprender a automatizar el cambio de tamaño de varias imágenes para que puedan enviarse por correo electrónico convenientemente y usar el aprendizaje automático para generar ilustraciones elaboradas para su boletín semanal. Una de estas cosas se puede aprender en una tarde y la otra puede llevar años. Sin embargo, todos tenemos que empezar en alguna parte, así que empieza poco a poco y siempre busca formas de mejorar.

3. Automatízalo

Use una herramienta de automatización en Linux para que esto suceda regularmente. ¡Este es el paso que cubre este artículo!

Para automatizar algo, necesita un script que automatice una tarea. Al realizar pruebas, es mejor simplificar las cosas, por lo que la tarea que automatiza este artículo es la creación de un archivo llamado hello en el /tmp directorio:

#!/bin/sh

touch /tmp/hello

Copie y pegue ese script simple en un archivo de texto y asígnele el nombre example .

Cron

La solución de automatización integrada que viene con cada instalación de Linux es el sistema cron. Los usuarios de Linux tienden a referirse a cron genéricamente como el método que usan para programar una tarea (generalmente llamado "trabajo cron"), pero existen múltiples aplicaciones que brindan la funcionalidad de cron. El más versátil es cronie; su ventaja es que no asuma que su computadora está siempre encendida, como lo hacen las aplicaciones cron históricas diseñadas para administradores de sistemas.

Verifique qué sistema cron proporciona su distribución de Linux. Si no es cronie, probablemente puedas instalar cronie desde el repositorio de software de tu distribución. Si su distribución no tiene un paquete para cronie, puede usar el antiguo anacron paquete en su lugar. El anacron El comando se incluye con cronie, por lo que independientemente de cómo lo adquiera, debe asegurarse de tener el anacron disponible en su sistema antes de continuar. Anacron puede requerir privilegios administrativos de raíz, según su configuración.

$ which anacron
/usr/sbin/anacron

El trabajo de Anacron es garantizar que sus trabajos de automatización se ejecuten con regularidad. Para hacer esto, anacron verifica cuándo fue la última vez que se ejecutó un trabajo y luego verifica con qué frecuencia le ha dicho que ejecute trabajos.

Suponga que configura anacron para ejecutar un script una vez cada cinco días. Cada vez que enciende su computadora o la despierta del modo de suspensión, anacron escanea sus registros para determinar si necesita ejecutar el trabajo. Si un trabajo se ejecutó hace cinco días o más, anacron ejecuta el trabajo.

Trabajos cron

Muchos sistemas Linux vienen con algunos trabajos de mantenimiento para que los realice cron. Me gusta mantener mis trabajos separados de los trabajos del sistema, así que creo un directorio en mi directorio de inicio. Específicamente, hay una carpeta oculta llamada ~/.local ("local" en el sentido de que está personalizado para su cuenta de usuario en lugar de para su sistema informático "global"), así que creo el subdirectorio etc/cron.daily para reflejar la casa habitual de cron en mi sistema. También debe crear un directorio de cola de impresión para realizar un seguimiento de la última vez que se ejecutaron los trabajos.

$ mkdir -p ~/.local/etc/cron.daily ~/.var/spool/anacron

Puede colocar cualquier secuencia de comandos que desee ejecutar regularmente en ~/.local/etc/cron.daily directorio. Copie el example script en el directorio ahora, y márquelo como ejecutable usando el comando chmod.

$ cp example ~/.local/etc/cron.daily
$ chmod +x ~/.local/etc/cron.daily/example

A continuación, configure anacron para ejecutar cualquier script que se encuentre en ~/.local/etc/cron.daily directorio.

Anacron

De forma predeterminada, gran parte del sistema cron se considera dominio del administrador de sistemas porque a menudo se usa para tareas importantes de bajo nivel, como rotar archivos de registro y actualizar certificados. La configuración que se muestra en este artículo está diseñada para un usuario normal que configura tareas de automatización personal.

Para configurar anacron para ejecutar sus trabajos cron, cree un archivo de configuración en /.local/etc/anacrontab :

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1  0  cron.mine    run-parts /home/tux/.local/etc/cron.daily/

Este archivo le dice a anacron que ejecute todos los scripts ejecutables (run-parts ) que se encuentra en ~/.local/etc/cron.daily cada un día (es decir, diariamente), con un retraso de cero minutos. A veces, se usa un retraso de unos minutos para que su computadora no reciba todas las tareas posibles justo después de iniciar sesión. Sin embargo, esta configuración es adecuada para realizar pruebas.

El cron.mine valor es un nombre arbitrario para el proceso. Lo llamo cron.mine pero podrías llamarlo cron.personal o penguin o lo que quieras.

Verifica tu anacrontab sintaxis del archivo:

$ anacron -T -t ~/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

El silencio significa éxito.

Añadiendo anacron a .profile

Finalmente, debe asegurarse de que anacron se ejecute con su configuración local. Debido a que está ejecutando anacron como usuario normal y no como usuario raíz, debe dirigirlo a sus configuraciones locales:anacrontab archivo que le dice a anacron qué hacer, y el directorio de spool que ayuda a anacron a realizar un seguimiento de cuántos días han pasado desde que se ejecutó cada trabajo por última vez:

anacron -fn -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

El -fn las opciones le dicen a anacron que ignore marcas de tiempo, lo que significa que lo está obligando a ejecutar su trabajo cron sin importar qué. Esto es exclusivamente con fines de prueba.

Probando tu trabajo cron

Ahora que todo está configurado, puede probar el trabajo. Técnicamente puede probar esto sin reiniciar, pero tiene más sentido reiniciar porque eso es para lo que está diseñado:sesiones de inicio de sesión interrumpidas e irregulares. Tómese un momento para reiniciar su computadora, inicie sesión y luego busque el archivo de prueba:

$ ls /tmp/hello
/tmp/hello

Suponiendo que el archivo existe, su secuencia de comandos de ejemplo se ha ejecutado correctamente. Ahora puede eliminar las opciones de prueba de ~/.profile , dejando esta como su configuración final:

anacron -t /home/tux/.local/etc/anacrontab \
-S /home/tux/.var/spool/anacron

Usando anacron

Tiene su infraestructura de automatización personal configurada, por lo que puede colocar cualquier script que desee que su computadora administre por usted en el ~/.local/etc/cron.daily directorio y se ejecutará según lo programado.

Depende de usted con qué frecuencia desea que se ejecuten los trabajos. Su script de ejemplo se ejecuta una vez al día. Obviamente, eso depende de si su computadora está encendida y despierta en un día determinado. Si usa su computadora el viernes pero la reserva para el fin de semana, el script no se ejecutará el sábado y el domingo. Sin embargo, el lunes se ejecutará el script porque anacron sabrá que ha pasado al menos un día. Puede agregar directorios semanales, quincenales o incluso mensuales a ~/.local/etc para programar una amplia variedad de intervalos.

Para agregar un nuevo intervalo:

  1. Añadir un directorio a ~/.local/etc (por ejemplo, cron.weekly ).
  2. Agregue una línea a ~/.local/etc/anacrontab para ejecutar scripts en el nuevo directorio. Para un intervalo semanal, la configuración sería:
    7 0 cron.mine run-parts /home/tux/.local/etc/cron.weekly/

    (con el 0 el valor es opcionalmente una cantidad de minutos para retrasar cortésmente el inicio del script).

  3. Coloca tus guiones en el cron.weekly directorio.

Bienvenido al estilo de vida automatizado. No se sentirá así, pero está a punto de volverse mucho más productivo.


Linux
  1. Cómo usar cron en Linux

  2. Cómo usar rsync avanzado para grandes copias de seguridad de Linux

  3. Cómo usar systemd-nspawn para la recuperación del sistema Linux

  4. Linux vs Windows:qué sistema operativo es mejor para juegos de PC

  5. Linux Vs Windows:por qué Linux es mejor para la programación y el desarrollo web

Manjaro vs. Ubuntu:¿cuál es mejor para ti?

CloudBerry Una herramienta de copia de seguridad en la nube fácil de usar para Linux

50 asombrosos comandos Crontab de Linux para los administradores de sistemas

15 razones para usar Manjaro Linux | Arch Linux fácil de usar para todos

6 distribuciones de Linux para uso educativo

MX Linux 17 Una distribución de Linux fácil de usar para novatos