Linux Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Traducciones
    • Contáctenos
  • LPI.org
107.2 Lección 1
Tema 105: Shells y scripts
105.1 Personalizar y usar el entorno de shell
  • 105.1 Lección 1
  • 105.1 Lección 2
  • 105.1 Lección 3
105.2 Personalizar y escribir scripts sencillos
  • 105.2 Lección 1
  • 105.2 Lección 2
Tema 106: Interfaces de usuario y escritorios
106.1 Instalar y configurar X11
  • 106.1 Lección 1
106.2 Escritorios gráficos
  • 106.2 Lección 1
106.3 Accesibilidad
  • 106.3 Lección 1
Tema 107: Tareas administrativas
107.1 Administrar cuentas de usuario y de grupo y los archivos de sistema relacionados con ellas
  • 107.1 Lección 1
  • 107.1 Lección 2
107.2 Automatizar tareas administrativas del sistema mediante la programación de trabajos
  • 107.2 Lección 1
  • 107.2 Lección 2
107.3 Localización e internacionalización
  • 107.3 Lección 1
Tema 108: Servicios esenciales del sistema
108.1 Mantener la hora del sistema
  • 108.1 Lección 1
  • 108.1 Lección 2
108.2 Registros del sistema
  • 108.2 Lección 1
  • 108.2 Lección 2
108.3 Conceptos básicos del Agente de Transferencia de Correo
  • 108.3 Lección 1
108.4 Gestión de la impresión y de las impresoras
  • 108.4 Lección 1
Tema 109: Fundamentos de redes
109.1 Fundamentos de los protocolos de Internet
  • 109.1 Lección 1
  • 109.1 Lección 2
109.2 Configuración de red persistente
  • 109.2 Lección 1
  • 109.2 Lección 2
109.3 Resolución de problemas básicos de red
  • 109.3 Lección 1
  • 109.3 Lección 2
109.4 Configuración DNS en el lado del cliente
  • 109.4 Lección 1
Tema 110: Seguridad
110.1 Tareas de administración de seguridad
  • 110.1 Lección 1
110.2 Configuración de la seguridad del sistema
  • 110.2 Lección 1
110.3 Protección de datos mediante cifrado
  • 110.3 Lección 1
  • 110.3 Lección 2
How to get certified
  1. Tema 107: Tareas administrativas
  2. 107.2 Automatizar tareas administrativas del sistema mediante la programación de trabajos
  3. 107.2 Lección 1

107.2 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

107 Tareas administrativas

Objetivo:

107.2 Automatizar tareas administrativas del sistema mediante la programación de trabajos

Lección:

1 de 2

Introducción

Automatizar las tareas regulares del sistema mediante la programación de trabajos (o Jobs) es una de las cosas más importantes que un buen administrador debe hacer. Por ejemplo, un administrador puede crear y automatizar trabajos para copias de seguridad, actualizaciones del sistema y para realizar muchas otras actividades repetitivas. Para ello puede utilizar la función cron, que es útil para automatizar la programación periódica de trabajos.

Programar trabajos con Cron

En sistemas Linux, cron es un demonio que se ejecuta continuamente y se activa cada minuto para comprobar un conjunto de tablas en busca de tareas a ejecutar. Estas tablas se conocen como crontabs y contienen las llamadas cron jobs. Cron es adecuado para servidores y sistemas que están encendidos constantemente, porque cada trabajo de cron se ejecuta sólo si el sistema se está ejecutando a la hora programada. Puede ser utilizado por usuarios ordinarios, cada uno de los cuales tiene su propio crontab, así como el usuario root que gestiona los crontabs del sistema.

Note

En Linux también existe la utilidad anacron, que es adecuada para sistemas que pueden ser apagados (como computadoras de escritorio o portátiles). Este sólo puede ser usado por root. Si la máquina está apagada cuando los trabajos de anacron deben ser ejecutados, se ejecutarán la próxima vez que se encienda la máquina. Anacron está fuera del alcance de la certificación LPIC-1.

Crontabs de usuario

Los crontabs de usuario son archivos de texto que gestionan la programación de los trabajos cron definidos por el usuario. Siempre tienen el nombre de la cuenta de usuario que los creó, pero la ubicación de estos archivos depende de la distribución utilizada (generalmente un subdirectorio de /var/spool/cron).

Cada línea en un crontab de usuario contiene seis campos separados por un espacio:

  • El minuto de la hora (0-59).

  • La hora del día (0-23).

  • El día del mes (1-31).

  • El mes del año (1-12).

  • El día de la semana (0-7 con domingo=0 o domingo=7).

  • La orden a ejecutar.

Para el mes del año y el día de la semana puede usar las tres primeras letras del nombre en lugar del número correspondiente.

Los primeros cinco campos indican cuándo ejecutar el comando que se especifica en el sexto campo, y pueden contener uno o más valores. En particular, se pueden especificar múltiples valores utilizando:

* (asterisco)

Se refiere a cualquier valor.

, (coma)

Especifica una lista de posibles valores.

- (guión)

Especifica un rango de valores posibles.

/ (slash)

Especifica valores escalonados.

Muchas distribuciones incluyen el archivo /etc/crontab que puede ser usado como referencia para la disposición de un archivo cron. A continuación se muestra un ejemplo de archivo /etc/crontab de una instalación de Debian:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

Crontabs de sistema

Los crontabs de sistema son archivos de texto que gestionan la programación de los trabajos del cron del sistema y sólo pueden ser editados por el usuario root. El archivo /etc/crontab y todos los que se encuentran del directorio /etc/cron.d son crontabs del sistema.

La mayoría de las distribuciones también incluyen los directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly y /etc/cron.monthly que contienen scripts para ser ejecutados con la frecuencia apropiada. Por ejemplo, si quiere ejecutar un script diariamente puede colocarlo en /etc/cron.daily.

Warning

Algunas distribuciones usan /etc/cron.d/hourly, /etc/cron.d/daily, /etc/cron.d/weekly y /etc/cron.d/monthly. Recuerde siempre comprobar los directorios correctos donde colocar los scripts que quiere que cron ejecute.

La sintaxis de los crontabs del sistema es similar a la de los crontabs de los usuarios, sin embargo, también requiere un campo obligatorio adicional que especifica qué usuario ejecutará el trabajo de cron. Por lo tanto, cada línea de un crontab de sistema contiene siete campos separados por un espacio:

  • El minuto de la hora (0-59).

  • La hora del día (0-23).

  • El día del mes (1-31).

  • El mes del año (1-12).

  • El día de la semana (0-7 con domingo=0 o domingo=7).

  • El nombre de la cuenta de usuario que se utilizará al ejecutar el comando.

  • El comando a ejecutar.

En cuanto a los crontabs de usuario, puede especificar múltiples valores para los campos de tiempo usando los operadores *, , , - y /. También puede indicar el mes y el día de la semana con las tres primeras letras del nombre en lugar del número correspondiente.

Especificaciones de tiempo particulares

Al editar los archivos crontab, también puede usar atajos especiales en las primeras cinco columnas en lugar de las especificaciones de tiempo:

@reboot

Ejecutar la tarea especificada una vez después de reiniciar.

@hourly

Ejecutar la tarea especificada una vez por hora al iniciar.

@daily (o @midnight)

Ejecutar la tarea especificada una vez al día a medianoche.

@weekly

Ejecutar la tarea especificada una vez a la semana a medianoche del domingo.

@monthly

Ejecutar la tarea especificada una vez al mes a la medianoche del primer día del mes.

@yearly (o @annually)

Ejecutar la tarea especificada una vez al año a medianoche del 1 de enero.

Variables de Crontab

En ocasiones, dentro de un archivo crontab, hay variables definidas antes de que se declaren las tareas programadas. Las variables de entorno establecidas (comúnmente) son:

HOME

El directorio donde cron invoca los comandos (por defecto el directorio principal del usuario).

MAILTO

El nombre del usuario o la dirección a la que se envía la salida estándar y el error (por defecto, el propietario del crontab). También se permiten múltiples valores separados por comas y un valor vacío indica que no se debe enviar ningún correo.

PATH

La ubicación de los comandos en los sistemas de archivos.

SHELL

El shell a usar (por defecto /bin/sh).

Crear trabajos en un cron de usuario

El comando crontab se usa para mantener los archivos crontab para usuarios individuales. En particular, puede ejecutar el comando crontab -e para editar su propio archivo crontab o para crear uno si aún no existe.

$ crontab -e
no crontab for frank - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        < ‑‑‑‑ easiest
  3. /usr/bin/emacs24
  4. /usr/bin/vim.tiny

Choose 1-4 [2]:

Por defecto, el comando crontab abre el editor especificado por las variables de entorno VISUAL o EDITOR para que pueda empezar a editar su archivo crontab con su preferido. Algunas distribuciones, como se muestra en el ejemplo anterior, le permiten elegir el editor de una lista cuando crontab se ejecuta por primera vez.

Si quiere ejecutar el script foo.sh ubicado en su directorio principal todos los días a las 10:00 am, puede agregar la siguiente línea a su archivo crontab:

0 10 * * * /home/frank/foo.sh

Considere los siguientes ejemplos de entradas en el crontab:

0,15,30,45 08 * * 2 /home/frank/bar.sh
30 20 1-15 1,6 1-5 /home/frank/foobar.sh

En la primera línea, el script bar.sh se ejecuta todos los martes a las 08:00 am, a las 08:15 am, a las 08:30 am y a las 08:45 am. En la segunda, línea el script foobar.sh se ejecuta a las 08:30 pm de lunes a viernes durante los primeros quince días de enero y junio.

Warning

Aunque los archivos crontab pueden ser editados manualmente, siempre se recomienda usar el comando crontab. Los permisos de los archivos crontab normalmente sólo permiten su edición mediante el comando crontab.

Además de la opción -e mencionada anteriormente, el comando crontab tiene otras opciones útiles:

-l

Muestra el crontab actual en la salida estándar.

-r

Quita el crontab actual.

-u

Especifica el nombre del usuario cuyo crontab necesita ser modificado. Esta opción requiere privilegios de root y permite que el usuario root edite los archivos crontab de otro usuario.

Crear crones de sistema

A diferencia de los crontabs de usuario, los crontabs de sistema se actualizan usando un editor: por lo tanto, no es necesario ejecutar el comando crontab para editar /etc/crontab y los archivos en /etc/cron.d. Recuerde que cuando edite los crontabs del sistema, debe especificar la cuenta que se usará para ejecutar el trabajo cron (normalmente el usuario root).

Por ejemplo, si quiere ejecutar el script barfoo.sh ubicado en el directorio /root todos los días a la 01:30 am, puede abrir /etc/crontab con su editor preferido y agregar la siguiente línea:

30 01 * * * root /root/barfoo.sh >>/root/output.log 2>>/root/error.log

En el ejemplo anterior, la salida del job se añade a /root/output.log, mientras que los errores se añaden a /root/error.log.

Warning

A menos que la salida sea redirigida a un archivo como en el ejemplo anterior (o que la variable MAILTO se establezca en un valor vacío), toda la salida de un trabajo cron será enviada al usuario por correo electrónico. Una práctica común es redirigir la salida estándar a /dev/null (o a un archivo para su posterior revisión si es necesario) y no redirigir el error estándar. De esta manera el usuario será notificado inmediatamente por correo electrónico de cualquier error.

Configurar el acceso a la programación de tareas

En Linux los archivos /etc/cron.allow y /etc/cron.deny se usan para establecer las restricciones crontab. En particular, se usan para permitir o no la programación de trabajos cron para diferentes usuarios. Si existe el archivo /etc/cron.allow, sólo los usuarios no root listados dentro de él pueden programar trabajos cron usando el comando crontab. Si /etc/cron.allow no existe pero /etc/cron.deny existe, sólo los usuarios no root listados dentro de este archivo no pueden programar trabajos cron usando el comando crontab (en este caso un /etc/cron.deny vacío significa que a cada usuario se le permite programar trabajos cron con crontab). Si no existe ninguno de estos archivos, el acceso del usuario a la programación de trabajos cron dependerá de la distribución utilizada.

Note

Los archivos /etc/cron.allow y /etc/cron.deny contienen una lista de nombres de usuario, cada uno en una línea separada.

Una alternativa a cron

Usando systemd como el administrador del sistema y del servicio, puede establecer timers como una alternativa a cron para programar sus tareas. Los temporizadores son archivos de unidad systemd identificados por el sufijo .timer, y para cada uno de ellos debe haber un archivo de unidad correspondiente que describa la unidad que se activará cuando el temporizador transcurra. Por defecto, un timer activa un servicio con el mismo nombre, excepto por el sufijo.

Un temporizador incluye una sección de [Timer] que especifica cuándo deben ejecutarse los trabajos programados. Específicamente, puede usar la opción OnCalendar= para definir temporizadores en tiempo real que funcionan de la misma manera que los trabajos cron (están basados en expresiones de eventos de calendario). La opción OnCalendar= requiere la siguiente sintaxis:

DayOfWeek Year-Month-Day Hour:Minute:Second

Con el DayOfWeek siendo opcional. Los operadores *, / y , tienen el mismo significado que los usados para los trabajos de cron, mientras que puede usar .. entre dos valores para indicar un rango contiguo. Para la especificación DayOfWeek, puede usar las tres primeras letras del nombre o el nombre completo.

Note

También se pueden definir temporizadores monótonos que se activan después de transcurrir un tiempo desde un punto de inicio específico (por ejemplo, cuando inicia máquina o cuando se activa el propio temporizador).

Por ejemplo, si quiere ejecutar el servicio llamado /etc/systemd/system/foobar.service a las 05:30 del primer lunes de cada mes, puede añadir las siguientes líneas en el archivo correspondiente de la unidad /etc/systemd/system/foobar.timer.

[Unit]
Description=Run the foobar service

[Timer]
OnCalendar=Mon *-*-1..7 05:30:00
Persistent=true

[Install]
WantedBy=timers.target

Una vez que haya creado el nuevo temporizador, puede activarlo e iniciarlo ejecutando los siguientes comandos como root:

# systemctl enable foobar.timer
# systemctl start foobar.timer

Puede cambiar la frecuencia de su trabajo programado, modificando el valor OnCalendar y luego escribiendo el comando Systemctl daemon-reload.

Finalmente, si quiere ver la lista de temporizadores activos ordenados por el tiempo que transcurre a continuación, puede usar el comando systemctl list-timers. Puede añadir la opción --all para ver también las unidades de temporizadores inactivos.

Note

Recuerda que los temporizadores se registran en el diario del sistema (system journal) y puede revisar los registros de las diferentes unidades usando el comando "journalalctl". Recuerde también que si esta utilizando un usuario ordinario, necesita usar la opción "user" de los comandos "systemctl" y "journalctl".

En lugar de la formas mencionadas anteriormente, se pueden utilizar algunas expresiones especiales que describen frecuencias particulares para la ejecución del trabajo:

hourly

Ejecutar la tarea especificada una vez por hora al comienzo de la hora.

daily

Ejecutar la tarea especificada una vez al día a medianoche.

weekly

Ejecutar la tarea especificada una vez a la semana a medianoche del lunes.

monthly

Ejecutar la tarea especificada una vez al mes a la medianoche del primer día del mes.

yearly

Ejecutar la tarea especificada una vez al año a medianoche del primer día de enero.

Puede ver las páginas de man para la lista completa de especificaciones de tiempo y fecha en systemd.timer(5).

Ejercicios guiados

  1. Para cada uno de los siguientes atajos crontab, indique la especificación de tiempo correspondiente (es decir, las cinco primeras columnas de un archivo crontab de usuario):

    @hourly

    @daily

    @weekly

    @monthly

    @annually

  2. Para cada uno de los siguientes atajos OnCalendar, indique la especificación de tiempo correspondiente (la forma más larga):

    hourly

    daily

    weekly

    monthly

    yearly

  3. Explique el significado de las siguientes especificaciones de tiempo que se encuentran en un archivo crontab:

    30 13 * * 1-5

    00 09-18 * * *

    30 08 1 1 *

    0,20,40 11 * * Sun

    00 09 10-20 1-3 *

    */20 * * * *

  4. Explique el significado de las siguientes especificaciones de tiempo utilizadas en la opción OnCalendar de un archivo de temporizador:

    *-*-* 08:30:00

    Sat,Sun *-*-* 05:00:00

    *-*-01 13:15,30,45:00

    Fri *-09..12-* 16:20:00

    Mon,Tue *-*-1,15 08:30:00

    *-*-* *:00/05:00

Ejercicios de exploración

  1. Asumiendo que usted está autorizado a programar trabajos con cron como un usuario ordinario, ¿Qué comando usaría para crear su propio archivo crontab?

  2. Cree un trabajo simple y programado que ejecute el comando date todos los viernes a la 01:00 pm. ¿Dónde puede ver la salida de este trabajo?

  3. Cree otro trabajo programado que ejecute el script foobar.sh cada minuto, redirigiendo la salida al archivo output.log en su directorio de origen para que sólo se le envíe el error estándar por correo electrónico.

  4. Mire la entrada crontab del nuevo trabajo programado. ¿Por qué no es necesario especificar la ruta absoluta del archivo en el que se guarda la salida estándar? ¿Y por qué puede usar el comando ./foobar.sh para ejecutar el script?

  5. Edite la entrada anterior crontab eliminando la redirección de salida y desactive el primer trabajo cron que había creado.

  6. ¿Cómo puede enviar la salida y los errores de un trabajo programado a la cuenta de usuario emma por correo electrónico? ¿Y cómo puede evitar enviar la salida y los errores estándar por correo electrónico?

  7. Ejecute el comando ls -l /usr/bin/crontab. ¿Qué bit especial se establece y cuál es su significado?

Resumen

En esta lección, aprendió:

  • Usar cron para ejecutar trabajos a intervalos regulares.

  • Administrar los trabajos de "cron".

  • Configurar el acceso del usuario a la programación de trabajos cron.

  • Comprender el papel de las unidades de tiempo del sistema como una alternativa a cron.

Los siguientes comandos y archivos fueron discutidos en esta lección:

crontab

Mantener los archivos crontab para los usuarios individuales.

/etc/cron.allow y /etc/cron.deny

Archivos particulares usados para establecer restricciones crontab.

/etc/crontab

Archivo crontab del sistema.

/etc/cron.d

El directorio que contiene los archivos crontab del sistema.

systemctl

Controla el sistema y el administrador del servicio. En relación con los temporizadores, se puede utilizar para habilitarlos e iniciarlos.

Respuestas a los ejercicios guiados

  1. Para cada uno de los siguientes atajos crontab, indique la especificación de tiempo correspondiente (es decir, las cinco primeras columnas de un archivo crontab de usuario):

    @hourly

    0 * * * *

    @daily

    0 0 * * *

    @weekly

    0 0 * * 0

    @monthly

    0 0 1 * *

    @annually

    0 0 1 1 *

  2. Para cada uno de los siguientes atajos OnCalendar, indique la especificación de tiempo correspondiente (la forma más larga):

    hourly

    *-*-* *:00:00

    daily

    *-*-* 00:00:00

    weekly

    Mon *-*-* 00:00:00

    monthly

    *-*-01 00:00:00

    yearly

    *-01-01 00:00:00

  3. Explique el significado de las siguientes especificaciones de tiempo para un archivo crontab:

    30 13 * * 1-5

    A las 13:30 horas todos los días de la semana de lunes a viernes

    00 09-18 * * *

    Todos los días y cada hora desde las 09:00 hasta las 18:00

    30 08 1 1 *

    A las 08:30 horas del primer día de enero

    0,20,40 11 * * Sun

    Todos los domingos a las 11:00, 11:20 y 11:40

    00 09 10-20 1-3 *

    A las 09:00 horas del 10 al 20 de enero, febrero y marzo

    */20 * * * *

    Cada veinte minutos

  4. Explique el significado de las siguientes especificaciones de tiempo para un archivo crontab:

    *-*-* 08:30:00

    Todos los días a las 08:30 am

    Sat,Sun *-*-* 05:00:00

    A las 05:00 am del sábado y el domingo

    *-*-01 13:15,30,45:00

    A las 01:15 pm, 01:30 pm y 01:45 pm del primer día del mes

    Fri *-09..12-* 16:20:00

    A las 04:20 pm todos los viernes de septiembre, octubre, noviembre y diciembre

    Mon,Tue *-*-1,15 08:30:00

    A las 8:30 de la mañana del primero o del decimoquinto día de cada mes, sólo si el día es un lunes o un martes.

    *-*-* *:00/05:00

    Cada cinco minutos

Respuestas a los ejercicios de exploración

  1. Asumiendo que usted está autorizado a programar trabajos con cron como un usuario ordinario, ¿Qué comando usaría para crear su propio archivo crontab?

    dave@hostname ~ $ crontab -e
    no crontab for dave - using an empty one
    
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/ed
      2. /bin/nano        < ---- easiest
      3. /usr/bin/emacs24
      4. /usr/bin/vim.tiny
    
    Choose 1-4 [2]:
  2. Cree un trabajo simple y programado que ejecute el comando date todos los viernes a la 01:00 pm. ¿Dónde puede ver la salida de este trabajo?

    00 13 * * 5 date

    La salida se envía por correo al usuario; para poder visualizarla, se puede utilizar el comando mail.

  3. Cree otro trabajo programado que ejecute el script foobar.sh cada minuto, redirigiendo la salida al archivo output.log en su directorio de origen para que sólo se le envíe el error estándar por correo electrónico.

    */1 * * * * ./foobar.sh >> output.log
  4. Mire la entrada crontab del nuevo trabajo programado. ¿Por qué no es necesario especificar la ruta absoluta del archivo en el que se guarda la salida estándar? ¿Y por qué puede usar el comando ./foobar.sh para ejecutar el script?

    cron invoca los comandos desde el directorio home del usuario, a menos que se especifique otra ubicación por la variable de entorno HOME dentro del archivo crontab. Por esta razón, puede utilizar la ruta relativa del archivo de salida y ejecutar el script con ./foobar.sh.

  5. Edite la entrada anterior crontab eliminando la redirección de salida y desactive el primer trabajo cron que había creado.

    #00 13 * * 5 date
    */1 * * * * ./foobar.sh

    Para deshabilitar un trabajo cron, puede simplemente comentar la línea correspondiente dentro del archivo crontab.

  6. ¿Cómo puede enviar la salida y los errores de un trabajo programado a la cuenta de usuario emma por correo electrónico? ¿Y cómo puede evitar enviar la salida y los errores estándar por correo electrónico?

    Para enviar la salida estándar y el error a emma, debe establecer la variable de entorno MAILTO en su archivo crontab de la siguiente manera:

    MAILTO="emma"

    Para especificarle a cron que no se debe enviar ningún correo, puede asignar un valor vacío a la variable de entorno MAILTO.

    MAILTO=""
  7. Ejecute el comando ls -l /usr/bin/crontab. ¿Qué bit especial se establece y cuál es su significado?

    $ ls -l /usr/bin/crontab
    -rwxr-sr-x 1 root crontab 25104 feb 10  2015 /usr/bin/crontab

    El comando crontab tiene el bit SGID establecido (el caracter s en lugar del flag ejecutable para el grupo), lo que significa que se ejecuta con los privilegios del grupo (por lo tanto crontab). Es por esto que los usuarios comunes pueden editar su archivo crontab usando el comando crontab. Tenga en cuenta que muchas distribuciones tienen permisos de archivo establecidos de tal manera que los archivos crontab sólo pueden ser editados mediante el comando crontab.

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

107.2 Automatizar tareas administrativas del sistema mediante la programación de trabajos (107.2 Lección 2)

Leer la próxima lección

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

© 2025 Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 250,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© 1999–2025 The Linux Professional Institute Inc. Todos los derechos reservados.