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:
- Añadir un directorio a
~/.local/etc
(por ejemplo,cron.weekly
). - 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). - 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.