LinuxParty
El mundo de Linux está lleno de cosas divertidas e interesantes , cuanto más profundizamos, más encontramos tipos de cosas.
En nuestros esfuerzos por brindarle esos pequeños trucos y consejos que lo diferencian de los demás, aquí hemos creado algunos métodos alternativos para programar un trabajo sin usar la utilidad cron en Linux.
Programar un trabajo/comando en Linux es un acrónimo de cron. Siempre que necesitamos programar un trabajo, llamamos al comando cron , pero ¿sabe que podemos programar un trabajo más adelante sin maíz? Puede hacerlo utilizando los siguientes enfoques comunes.
Tabla de contenido
- 1. Programación de trabajos en Linux usando Sleep Loop
- 2. Programe tareas con temporizadores Systemd
- 3. Programación de tareas con Anacron
1. Programación de trabajos en Linux usando Sleep Loop
Ejecute un comando (digamos fecha ) cada 5 segundos y escriba el resultado en un archivo (digamos fecha.txt ). Para lograr este escenario, debemos ejecutar el siguiente script de una sola línea directamente en el símbolo del sistema.
$ while true; do date >> date.txt ; sleep 5 ; done &
Anatomía del script de una sola línea anterior:
- while true: solicita que el script se ejecute mientras la condición sea verdadera; actúa como un bucle que hace que el comando se ejecute una y otra vez o diga en un bucle.
- do : realiza lo que sigue, es decir, ejecuta el comando o conjunto de comandos que se encuentran antes de la declaración do.
- date >> date.txt: - aquí la salida del comando date se escribe en un archivo date.txt . Además, tenga en cuenta que hemos utilizado, y asegúrate de usar
>>
y no>
. >>
garantiza que el archivo ( date.txt ) no se sobrescriba cada vez que se ejecuta el script. Simplemente agrega los cambios. Mientras que>
sobrescribe el archivo una y otra vez.- sleep 5: - le pide al shell que mantenga una diferencia de tiempo de 5 segundos antes de ejecutarse nuevamente. Tenga en cuenta que el tiempo aquí siempre se mide en segundos. Digamos que si desea ejecutar el comando cada 6 minutos, debe usar ( 6*60 ) 360, en una sucesión de suspensión.
- done: – marca el final de un bucle while.
&
: – Poner todo el proceso en bucle en segundo plano.
De manera similar, podemos ejecutar cualquier script de la misma manera. Aquí está el comando para llamar a un script después de un cierto intervalo (digamos 100 segundos ) y el nombre del script es script_name.sh
.
También vale la pena mencionar que el script anterior debe ejecutarse en el directorio donde se encuentra el script que se llamará; de lo contrario, debe proporcionar una ruta completa ( /home/$USER/…/script_name.sh
).
La sintaxis para llamar al script en el intervalo descrito anteriormente es:
$ while true; do /bin/sh script_name.sh ; sleep 100 ; done &
Nota : La frase anterior no reemplaza a Cron , porque la utilidad Cron admite una gran cantidad de opciones, en comparación, y es muy flexible y personalizable.
Sin embargo, si queremos ejecutar ciertos casos de prueba o pruebas comparativas de E/S, entonces el comando único anterior servirá para ese propósito.
2. Programe tareas con temporizadores Systemd
En la mayoría de las distribuciones modernas de Linux , Systemd es el sistema de inicio predeterminado y viene con una funcionalidad de temporizador que puede permitirle programar sus tareas.
Primero, cree un nuevo archivo de unidad de temporizador systemd.timer
con una extensión como se muestra.
$ sudo nano /etc/systemd/system/myjob.timer
Agregue el siguiente contenido al archivo: myjob.timer
:
[Unit] Description=My Job Timer [Timer] OnCalendar=*-*-* 00:00:00 # Replace the OnCalendar value with the desired schedule [Install] WantedBy=timers.target
El campo OnCalendar en una unidad de temporizador systemd le permite especificar la programación de su trabajo usando un formato específico.
- Yearly : anual o anualmente
- Monthly : mensual
- Weekly : semanal
- Daily : diariamente o medianoche
- Hourly : cada hora
- Minutes : puede especificar un minuto específico usando el formato
*:MM
(por ejemplo,*:15
por cada 15 minutos) o un rango específico usando MM-MM (por ejemplo, 10-30 por cada minuto de 10 a 30).
A continuación se muestran algunos ejemplos para ilustrar el formato:
## Ejecutar todos los días a las 3:00 a. m. ## OnCalendar=*-*-* 03:00:00 ## Todos los lunes y viernes a las 10:00 a. m. ##
OnCalendar=Mon,Fri *-*-* 10:00:00# Ejecutar cada 30 minutos: ##
OnCalendar=*-*-* *:0/30:00
A continuación, cree un archivo de unidad de servicio correspondiente con una .service
extensión en el mismo directorio:
$ sudo nano /etc/systemd/system/myjob.service
Agregue el siguiente contenido al myjob.service
archivo:
[Unit] Description=My Job [Service] ExecStart=/path/to/your/job.sh # Replace "/path/to/your/job.sh" with the actual command or script to execute [Install] WantedBy=multi-user.target
Habilite e inicie el temporizador:
$ sudo systemctl enable myjob.timer $ sudo systemctl start myjob.timer
Esto programará su trabajo para que se ejecute según el temporizador especificado.
3. Programación de tareas con Anacron
Anacron es un programador de trabajos basado en el tiempo que le permite programar trabajos periódicamente en sistemas que no siempre están encendidos. Está diseñado para sistemas que pueden no tener acceso regular a cron. Si Anacron está instalado en su sistema, puede usarlo para programar su trabajo.
Si no está instalado, puede instalarlo usando su administrador de paquetes.
$ sudo apt install anacron [En Debian, Ubuntu y Mint ] $ sudo yum install anacron [En RHEL/CentOS/Fedora y Rocky/AlmaLinux ] $ sudo emerge -a sys-apps/anacron [En Gentoo Linux ] $ sudo apk add anacron [En Alpine Linux ] $ sudo pacman -S anacron [En Arch Linux ] $ sudo zypper install anacron [En OpenSUSE ]
Cree un nuevo archivo de configuración ( myjob.sh ) para su trabajo en el directorio /etc/anacrontab.d/ .
$ sudo nano /etc/anacrontab.d/myjob.sh
En el archivo de configuración, especifique los detalles de su trabajo.
# Ejecute myjob.sh todos los días con un retraso de 5 minutos1 5 myjob /path/to/myjob.sh
Los campos del archivo de configuración tienen los siguientes significados:
- El primer campo es el período de tiempo en el que se debe ejecutar el trabajo @daily , @weekly , @monthly o @yearly .
- El segundo campo es el tiempo en minutos para retrasar la ejecución del trabajo después de que se inicia el sistema.
- El tercer campo es el nombre del trabajo, que se utilizará para crear archivos de registro.
- El cuarto campo es el comando o script que se ejecutará.
Ahora, Anacron ejecutará automáticamente su trabajo de acuerdo con el cronograma especificado.
-
Artículos
- La versión candidata a la versión GIMP 3.0 ya está disponible para pruebas públicas
- Cómo ejecutar aplicaciones Android en Linux
- Cómo formatear discos en Linux desde la línea de comandos
- Cuarenta y tres monos escapan de un laboratorio de investigación en Estados Unidos
- Intel observa una mejora del rendimiento del 3888,9 % en el kernel de Linux: a partir de una línea de código
- Cómo crear un túnel SSH en Linux
- Cómo configurar el firewall UFW en Ubuntu en 5 minutos
- Linux Lite acaba de incorporar una útil función de inteligencia artificial para el escritorio, y es más sutil de lo que cree
- Cómo instalar Linux en una unidad USB y ejecutarlo en cualquier PC
- Phoca Desktop System Plugin 4.0.5 publicado
- Herramientas de IA para Traducciones Precisas y Naturales: Cómo Optimizar el Proceso
- 6 características que desearía que MacOS copiara de Linux
- Malware en Android: VPN y Apps Peligrosas en Play Store
- Probar el micrófono en Linux usando terminal o shell
- ¿Qué es peor que atrasar el reloj una hora? El horario de verano permanente