> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/es/sonar/administration/automation/automated-tasks.md).

# Tareas automatizadas

Programe scripts y comandos en un dispositivo o mediante una política: disparadores, acciones, tareas recolectoras, ejecución inmediata, cómo programan Windows y Linux/macOS y dónde ver resultados.

## Qué es y cuándo usarlo

Una tarea automatizada es una lista de acciones (scripts de la biblioteca y líneas de comandos) que SONAR ejecuta en un dispositivo a partir de un disparador: una programación, el primer contacto de un dispositivo nuevo, el fallo de un check, o bajo demanda. Una tarea también puede ser una **tarea recolectora**, que escribe su salida en un campo personalizado.

Las tareas viven en dos lugares:

* en un dispositivo, en su pestaña **TASKS**;
* en una [política de automatización](/es/sonar/administration/automation/automation-policies.md), en la pestaña **Tasks** de la política, que aplica la tarea a cada dispositivo que hereda la política.

Use las tareas para el mantenimiento recurrente (limpiezas, informes, valores de inventario), para la configuración inicial de los dispositivos nuevos y para la corrección automática cuando falla un check.

## Antes de empezar

* Un rol con **List Tasks** para ver las tareas, **Manage Tasks** para crearlas, editarlas y eliminarlas, y **Run Tasks** para usar **Run task now**. Están en el grupo **Automation & Tasks** de **Admin Center › Roles**.
* Acceso al cliente o al sitio del dispositivo, para las tareas de dispositivo.
* Al menos un script en **Management › Scripts**. El formulario de la tarea no abre sus pasos mientras la biblioteca esté vacía.
* Para una tarea recolectora, el campo personalizado creado en **Admin Center › Settings › Custom Fields** (vea [Campos personalizados](/es/sonar/administration/settings/custom-fields.md)).
* Para **On check failure**, el check ya configurado en el dispositivo o en la política (vea [Checks](/es/sonar/administration/automation/checks.md)).

## Cómo se ejecutan las tareas en cada plataforma

|                                                            | Windows                                                                                                                               | Linux y macOS                                                                                                                                            |
| ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Dónde reside la programación                               | En el dispositivo, como una tarea programada que el agente crea en el Programador de tareas de Windows                                | En el servidor de SONAR, que comprueba cada minuto qué tareas tocan y ordena al agente ejecutarlas                                                       |
| Cuándo llega un cambio al dispositivo                      | Cuando el dispositivo se sincroniza con el servidor; la columna **Sync Status** muestra el progreso                                   | De inmediato, en la siguiente ejecución prevista                                                                                                         |
| Si el dispositivo está fuera de línea a la hora programada | El programador de Windows gestiona el inicio perdido; **Run task ASAP after a scheduled start is missed** la ejecuta lo antes posible | La ejecución de esa hora no se entrega; la tarea se ejecuta en su siguiente hora programada                                                              |
| Hora utilizada                                             | La zona horaria del dispositivo                                                                                                       | La zona horaria del dispositivo. Solo se usan la hora y el minuto de **Run at**, salvo en **Run Once**                                                   |
| Opciones de programación                                   | Todas las opciones, incluidas **Advanced Settings (Windows only)** y **Expires on**                                                   | Todos los tipos de ejecución. **Daily**, **Weekly** y **Monthly** usan solo la hora del día y los días elegidos: sin intervalos, repetición ni caducidad |

En todas las plataformas, las acciones se ejecutan con los privilegios del agente. En Windows, una tarea programada se ejecuta como SYSTEM; un script marcado con **Run As User (Windows only)** en la biblioteca se ejecuta en cambio como el usuario que ha iniciado sesión.

## Pasos

### Añadir una tarea a un dispositivo

1. Abra **Dashboard › Sysadmin**, seleccione el dispositivo y abra su pestaña **TASKS**.
2. Haga clic en **Add Task**. **Adding Automated Task** se abre en el paso **Select Task**.
3. Escriba el **Descriptive name of task**.
4. Para una tarea recolectora, marque **Collector Task**, elija el **Custom Field to update** y, para guardar toda la salida en lugar de la última línea, marque **Save all output**.
5. Elija la **Alert Severity** que se usa cuando la tarea falla y haga clic en **Next**.
6. En **Configure Actions**, elija **Script** o **Command** en **Action Type**:
   * **Script**: elíjalo en **Select script**, revise **Script Arguments**, **Environment vars** y **Timeout (seconds)** y haga clic en **Add**.
   * **Command**: escriba el **Command**, fije **Timeout (seconds)**, elija **CMD**, **Powershell**, **Bash** o **Custom** (con **Custom shell**) y haga clic en **Add**.
7. Repita para cada acción. Arrastre los tiradores para reordenarlas; se ejecutan de arriba abajo. Desmarque **Continue on Errors** si la tarea debe detenerse en la primera acción que falle. Haga clic en **Next**.
8. En **Choose Schedule**, elija el **Task run type** y rellene sus campos (vea la referencia de campos).
9. Haga clic en **Add Task**.

### Añadir una tarea a una política

1. Abra el menú **Management** en el encabezado y elija **Automations**.
2. Seleccione la política, abra su pestaña **Tasks** y añada la tarea. El formulario es el mismo, con un campo más en el primer paso: **Supported Platforms**, las plataformas a las que se aplica la tarea.
3. Cada dispositivo que hereda la política y ejecuta una de esas plataformas recibe la tarea. Vea [Políticas de automatización](/es/sonar/administration/automation/automation-policies.md).

### Ejecutar una tarea ahora

1. En la pestaña **TASKS** del dispositivo, haga clic con el botón derecho en la tarea.
2. Elija **Run task now**. La confirmación dice `<task> will now be run.`

Esto funciona para las tareas del dispositivo y para las tareas de política que se muestran en el dispositivo, y con cualquier disparador, incluido **Manual**. Una tarea desactivada debe activarse primero. Para ejecutar una tarea de política en todos sus dispositivos a la vez, use **Run** en la pestaña **Tasks** de la política.

### Activar, desactivar, editar o eliminar

* Marque o desmarque la columna del icono de encendido para activar o desactivar una tarea del dispositivo.
* Haga doble clic en una tarea del dispositivo, o haga clic en ella con el botón derecho y elija **Edit**, para cambiarla. El cambio llega a los dispositivos Windows cuando se sincronizan.
* Haga clic con el botón derecho y elija **Delete**. La tarea se quita del dispositivo poco después.

Las tareas que proceden de una política muestran el icono de política (`This task is managed by a policy`) y se editan en la política, no en el dispositivo.

### Ejecutar una tarea cuando falla un check

1. Cree o abra la tarea y, en **Choose Schedule**, elija **On check failure**.
2. En **Select Check**, elija el check.
3. Guarde. Cada vez que ese check informe un fallo, el dispositivo ejecuta la tarea. La tarea se ejecuta con cada resultado fallido, no solo con el primero, así que escriba sus acciones de modo que ejecutarlas de nuevo no cause ningún daño.

## Qué debe ver

La tarea aparece en la pestaña **TASKS** con su **Name**, **Sync Status**, **More Info**, **Last Run Time**, **Schedule** y, para las tareas asociadas al fallo de un check, **Assigned Check**. Las primeras columnas muestran si está activada, su configuración de alertas por SMS, correo y panel, el icono de política, el icono de recolectora y su estado: sin fallo, o la severidad del fallo (**Informational**, **Warning**, **Error**).

**Sync Status** indica **Synced with agent**, **Will sync on next agent checkin**, **Waiting for task creation on agent** o **Pending deletion on agent**.

## Cómo verificar que funcionó

1. En la pestaña **TASKS**, haga clic en el botón de actualizar después de la hora programada o después de **Run task now**. **Last Run Time** muestra la ejecución, y **More Info** pasa de **Awaiting output** a **output**.
2. Haga clic en **output**. **Script Output** muestra **Last Run**, **Run Time**, **Return Code**, **Standard Output** y **Standard Error**. Un código de retorno distinto de 0 marca la tarea como fallida; en una tarea recolectora, también cualquier salida en el error estándar.
3. Abra la pestaña **HISTORY**. Cada ejecución añade una línea **Task Run**.
4. Para una tarea recolectora, abra el dispositivo con **Edit** y compruebe el campo personalizado.
5. Para una tarea de política, use **See Status** en la pestaña **Tasks** de la política para ver el resultado en cada dispositivo.

## Errores comunes

| Síntoma                                                                                                  | Causa                                                                      | Solución                                                                            |
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| El formulario muestra un mensaje breve y un enlace en lugar de los tres pasos                            | La biblioteca de scripts está vacía                                        | Añada primero un script en **Management › Scripts**                                 |
| `There must be at least one supported platform`                                                          | Una tarea de política sin ninguna plataforma marcada                       | Marque al menos una plataforma                                                      |
| `Script and timeout must be set` / `A command and timeout must be set`                                   | Se hizo clic en **Add** con el script, el comando o el tiempo límite vacío | Rellénelos antes de hacer clic en **Add**                                           |
| `There must be at least one action`                                                                      | **Next** en **Configure Actions** con la lista vacía                       | Añada al menos una acción                                                           |
| `Expires date/time is in the past`                                                                       | **Expires on** es anterior al momento actual                               | Elija una fecha futura o vacíe el campo                                             |
| `Task cannot be run when it's disabled. Enable it first.`                                                | **Run task now** en una tarea desactivada                                  | Active la tarea                                                                     |
| **Sync Status** se queda en **Will sync on next agent checkin** o **Waiting for task creation on agent** | Un dispositivo Windows aún no se ha sincronizado, o está fuera de línea    | Espere a que el dispositivo esté en línea; el estado cambia a **Synced with agent** |
| Una tarea de Linux o macOS no se ejecutó a su hora                                                       | El dispositivo estaba fuera de línea en ese minuto                         | Mantenga el dispositivo en línea a la hora programada, o use **Run task now**       |
| **Edit** y **Delete** no aparecen en el menú                                                             | La tarea procede de una política                                           | Cámbiela en **Management › Automations**                                            |

## Referencia de campos

### Select Task

| Campo                    | Qué hace                                                                                                                                       | Valores aceptados                         | Predeterminado                              |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ------------------------------------------- |
| Descriptive name of task | Nombre que se muestra en las pestañas y en **History**                                                                                         | Texto                                     | Vacío. Obligatorio                          |
| Supported Platforms      | Solo tareas de política. Plataformas que reciben la tarea                                                                                      | **Windows**, **Linux**, **macOS**         | **Windows**                                 |
| Collector Task           | Escribe la salida en un campo personalizado                                                                                                    | Activado o desactivado                    | Desactivado                                 |
| Custom Field to update   | Destino de una tarea recolectora. El valor se guarda en el dispositivo que ejecutó la tarea, así que use un campo personalizado de dispositivo | Un campo personalizado de dispositivo     | Ninguno. Obligatorio con **Collector Task** |
| Save all output          | Guarda toda la salida; si no, solo la última línea                                                                                             | Activado o desactivado                    | Desactivado                                 |
| Alert Severity           | Severidad de la alerta que se genera cuando la tarea falla                                                                                     | **Informational**, **Warning**, **Error** | **Informational**                           |

### Configure Actions

| Campo              | Qué hace                                                                | Valores aceptados                                                         | Predeterminado                           |
| ------------------ | ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | ---------------------------------------- |
| Action Type        | Tipo de acción que se añade                                             | **Script**, **Command**                                                   | **Script**                               |
| Select script      | Script de la biblioteca que se ejecuta                                  | Cualquier script de la biblioteca                                         | Ninguno                                  |
| Script Arguments   | Argumentos de esta acción                                               | Texto, con [variables de script](/es/sonar/reference/script-variables.md) | Los valores predeterminados del script   |
| Environment vars   | Variables de entorno, como `KEY=VALUE`                                  | Texto, con variables de script                                            | Los valores predeterminados del script   |
| Command            | Línea de comandos que se ejecuta. Puede contener una variable de script | Texto                                                                     | Vacío                                    |
| Shell              | Intérprete de una acción de comando                                     | **CMD**, **Powershell**, **Bash**, **Custom**                             | **CMD**                                  |
| Custom shell       | Ruta del intérprete para **Custom**                                     | Ruta absoluta                                                             | Vacío                                    |
| Timeout (seconds)  | Tiempo máximo de ejecución de la acción                                 | Número entero                                                             | 30, o el valor predeterminado del script |
| Continue on Errors | Sigue ejecutando las acciones siguientes cuando una falla               | Activado o desactivado                                                    | Activado                                 |

### Choose Schedule

| Campo                                           | Qué hace                                                                                                                                   | Valores aceptados                                                                                  | Predeterminado       |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- | -------------------- |
| Task run type                                   | El disparador                                                                                                                              | **Daily**, **Weekly**, **Monthly**, **Run Once**, **On check failure**, **Onboarding**, **Manual** | **Daily**            |
| Start time / Run at                             | Primera ejecución (Windows) u hora del día (Linux y macOS), en la zona horaria del dispositivo. Para **Run Once**, debe estar en el futuro | Fecha y hora                                                                                       | Ahora                |
| Expires on                                      | Solo Windows. Fecha a partir de la cual la tarea deja de ejecutarse                                                                        | Fecha y hora, en el futuro                                                                         | Vacío                |
| Run every … days                                | **Daily**, solo Windows                                                                                                                    | 1 a 255                                                                                            | 1                    |
| Run every … weeks                               | **Weekly**, solo Windows                                                                                                                   | 1 a 52                                                                                             | 1                    |
| Run on Days                                     | **Weekly**: días de la semana                                                                                                              | De lunes a domingo                                                                                 | Ninguno. Obligatorio |
| On Days / On Weeks                              | **Monthly**: por día del mes o por semana del mes                                                                                          | Una de las dos opciones                                                                            | **On Days**          |
| Run on Months                                   | **Monthly**: meses en los que se ejecuta, con **All months**                                                                               | De enero a diciembre                                                                               | Ninguno. Obligatorio |
| Run on Days                                     | **Monthly › On Days**: días del mes, con **All days** y **Last Day**                                                                       | 1 a 31, **Last Day**                                                                               | Ninguno. Obligatorio |
| Run on weeks / Run on days                      | **Monthly › On Weeks**: qué semanas y qué días de la semana                                                                                | **First Week** a **Fourth Week**, **Last Week**; de lunes a domingo                                | Ninguno. Obligatorio |
| Select Check                                    | **On check failure**: el check que dispara la tarea                                                                                        | Checks del dispositivo o de la política                                                            | Ninguno. Obligatorio |
| Repeat task every                               | Solo Windows. Repite la tarea a lo largo del día                                                                                           | De 1 a 3 dígitos más `d`, `h`, `m` o `s`, por ejemplo `30m`                                        | Vacío                |
| Task repeat duration                            | Solo Windows. Cuánto dura la repetición. Debe ser mayor que el intervalo                                                                   | El mismo formato, por ejemplo `6h`                                                                 | Vacío                |
| Stop all tasks at the end of duration           | Solo Windows. Detiene las instancias en ejecución cuando termina la duración                                                               | Activado o desactivado                                                                             | Desactivado          |
| Random task delay                               | Solo Windows. Retraso aleatorio que se añade a cada inicio                                                                                 | El mismo formato, por ejemplo `2m`                                                                 | Vacío                |
| Delete task if not scheduled for 30 days        | Solo Windows. Requiere **Expires on**                                                                                                      | Activado o desactivado                                                                             | Desactivado          |
| Run task ASAP after a scheduled start is missed | Solo Windows. No disponible para **Run Once**                                                                                              | Activado o desactivado                                                                             | Activado             |
| Task instance policy                            | Solo Windows. Qué ocurre cuando una ejecución empieza mientras la anterior sigue en curso                                                  | **Run in Parallel**, **Queue Task**, **Ignore**, **Stop Existing**                                 | **Run in Parallel**  |

**Onboarding** se ejecuta una vez, en cuanto la tarea llega a un dispositivo, lo que lo convierte en el disparador para la configuración inicial en una política. **Manual** nunca se ejecuta por sí solo; se ejecuta únicamente con **Run task now** o con el **Run** de la política.

## Páginas relacionadas

* [Políticas de automatización](/es/sonar/administration/automation/automation-policies.md)
* [Checks](/es/sonar/administration/automation/checks.md)
* [Biblioteca de scripts](/es/sonar/administration/automation/scripts.md)
* [Alertas y plantillas de alerta](/es/sonar/administration/automation/alerts.md)
* [Variables de script](/es/sonar/reference/script-variables.md)
