

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Descargas automáticas
<a name="auto-downloads"></a>

La CLI de Deadline proporciona un comando para descargar el resultado de todas las tareas de una cola que se hayan completado desde la última vez que se ejecutó el mismo comando. Puede configurarlo como un trabajo cron o una tarea programada para que se ejecute de forma repetida. Esta configuración configura la descarga automática de los resultados de forma continua.

Antes de configurar las descargas automáticas, siga los pasos que se indican en los perfiles de [ almacenamiento de los archivos adjuntos de tareas ](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/storage-profile.html) para configurar todas las rutas de carga y descarga de los datos de los activos. Si un trabajo usa una ruta de salida que no está en su perfil de almacenamiento, la descarga automática omite la descarga de esa salida e imprime mensajes de advertencia para resumir los archivos que no descargó. Del mismo modo, si se envía un trabajo sin un perfil de almacenamiento, la descarga automática omite ese trabajo e imprime un mensaje de advertencia. De forma predeterminada, los remitentes de Deadline Cloud muestran mensajes de advertencia sobre las rutas que se encuentran fuera de los perfiles de almacenamiento para ayudar a garantizar una configuración correcta.

## Configuración AWS credentials
<a name="credentials"></a>

Las descargas automáticas utilizan la CLI de Deadline para descargar de forma continua los resultados de los trabajos. Para autenticar estas descargas, necesita credenciales de IAM de larga duración. Las credenciales de Deadline Cloud Monitor caducan, por lo que no puede usarlas para este propósito. 

 Siga los pasos que se indican a continuación para configurar las credenciales a largo plazo. 

**importante**  
Preste atención a las siguientes advertencias:  
**NO ** utilices las credenciales raíz de tu cuenta para acceder a AWS los recursos. Estas credenciales proporcionan acceso ilimitado a la cuenta y son difíciles de revocar.
**NO** incluya claves de acceso literales ni información sobre credenciales en sus archivos de aplicación. Si lo hace, puede crear un riesgo de exposición accidental de sus credenciales si, por ejemplo, carga el proyecto en un repositorio público.
**NO** incluya archivos que contengan credenciales en el área del proyecto.
Proteja sus claves de acceso. No proporcione sus claves de acceso a terceros no autorizados, ni siquiera para que le ayuden a [buscar sus identificadores de cuenta](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html). De este modo, puedes dar a alguien acceso permanente a tu cuenta.
Tenga en cuenta que las credenciales almacenadas en el archivo de AWS credenciales compartidas se almacenan en texto sin formato.
Para obtener más información, consulte las prácticas [ recomendadas para administrar las claves de AWS acceso en la Referencia *AWS general*. ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#securing_access-keys)

**Creación de un usuario de IAM**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Usuarios** y, a continuación, seleccione **Crear usuario**.

1. Asigne un nombre al usuario**deadline-output-downloader**. Desactive la casilla de verificación ** Proporcionar acceso a los usuarios al y, a continuación Consola de administración de AWS**, seleccione ** Siguiente**.

1. Seleccione **Asociar políticas directamente**.

1. Seleccione ** Crear política ** para crear una política personalizada con los permisos mínimos requeridos.

1. En el editor JSON, especifica los siguientes permisos:

------
#### [ JSON ]

****  

   ```
   {
                      "Version":"2012-10-17",		 	 	 
                      "Statement": [
                          {
                              "Sid": "DeadlineCloudOutputDownload",
                              "Effect": "Allow",
                              "Action": [
                                  "deadline:AssumeQueueRoleForUser",
                                  "deadline:ListQueueEnvironments",
                                  "deadline:ListSessions",
                                  "deadline:ListSessionActions",
                                  "deadline:SearchJobs",
                                  "deadline:GetJob",
                                  "deadline:GetQueue",
                                  "deadline:GetStorageProfileForQueue"
                              ],
                              "Resource": "*"
                          }
                        ]
                     }
   ```

------

1. Asigne un nombre a la política **DeadlineCloudOutputDownloadPolicy** y elija ** Crear política**.

1. Vuelva a la página de creación de usuarios, actualice la lista de políticas, seleccione la ** DeadlineCloudOutputDownloadPolicy ** que acaba de crear y, a continuación, elija ** Siguiente**.

1. Revise los detalles del usuario y, a continuación, elija ** Crear usuario**.

**Creación de una clave de acceso**

1. En la página de detalles del usuario, selecciona la ** pestaña Credenciales de ** seguridad. En la sección **Claves de acceso**, haga clic en **Crear clave de acceso**. 

1. Indica que quieres usar la clave para Otros, selecciona ** Siguiente y, a continuación**, elige ** Crear clave de acceso**.

1. En la ** página ** Recuperar claves de acceso, selecciona ** Mostrar ** para ver el valor de la clave de acceso secreta de tu usuario. Puede copiar las credenciales o descargar un archivo .csv.

**Guarde las claves de acceso de los usuarios**
+ Guarde las claves de acceso de los usuarios en el archivo de AWS credenciales de su sistema:
  + SíLinux, el archivo se encuentra en `~/.aws/credentials`
  + SíWindows, el archivo se encuentra en `%USERPROFILE%\.aws\credentials`

  Sustituya las siguientes claves:

  ```
  [deadline-downloader]
  aws_access_key_id={{ACCESS_KEY_ID}}
  aws_secret_access_key={{SECRET_ACCESS_KEY}}
  region={{YOUR_AWS_REGION}}
  ```

**importante**  
Cuando ya no necesites este usuario de IAM, te recomendamos que lo elimines para adaptarlo a las prácticas [ recomendadas ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials)AWS de seguridad. Le recomendamos que exija a sus usuarios humanos que utilicen credenciales temporales [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) al acceder AWS.

## Requisitos previos
<a name="auto-downloads-prerequisites"></a>

Complete los siguientes pasos antes de crear un trabajo cron o una tarea programada para su descarga automática.

1. Si aún no lo has hecho, instala [ Python ](https://www.python.org/) desde el sitio web de Python.

1. Instala la CLI de Deadline ejecutando:

   ```
   python -m pip install deadline
   ```

1. Confirme que la versión de la CLI de Deadline es 0.52.1 o posterior con el siguiente comando.

   ```
   $ deadline --version
   deadline, version 0.52.1
   ```

   Para ver el estado de la descarga en el monitor de Deadline Cloud, usa la versión 0.60.4 o una posterior. Esa versión empezó a registrar el estado de descarga que lee el monitor. Para obtener más información, consulte [Ver el estado de descarga de los resultados en Deadline Cloud](auto-downloads-status.md).

## Pruebe el comando de descarga de salida
<a name="test-output-command"></a>

**Para comprobar que el comando funciona en su entorno**

1. Obtenga la ruta a Deadline

------
#### [ Linux and macOS ]

   ```
   $ which deadline
   ```

------
#### [ Windows ]

   ```
   C:\> where deadline
   ```

------
#### [ PowerShell ]

   ```
   PS C:\> Get-Command deadline
   ```

------

1. Ejecuta el comando sync-output para arrancar.

   ```
     /path/to/deadline queue sync-output \
     --profile deadline-downloader \
     --farm-id YOUR_FARM_ID \
     --queue-id YOUR_QUEUE_ID \
     --storage-profile-id YOUR_PROFILE_ID \
     --checkpoint-dir /path/to/checkpoint/directory \
   ```

1. Solo necesita realizar este paso si su máquina de descarga es la misma que la máquina de envío. Sustituya `--storage-profile-id YOUR_PROFILE_ID \` lo anterior por`--ignore-storage-profiles`. 

1. Envía un trabajo de prueba.

   1. Descargue el archivo.zip desde GitHub.

      1. Abra el repositorio [https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) deadline-cloud-samples en el sitio web. GitHub 

      1. Selecciona ** Código ** y, a continuación, en el menú desplegable, selecciona Descargar ZIP. ** **

      1. Descomprime el archivo descargado en un directorio local.

   1. Ejecutar

      ```
       cd /path/to/unzipped/deadline-cloud-samples-mainline/job_bundles/job_attachments_devguide_output
      ```

   1. Ejecutar

      ```
      deadline bundle submit .
      ```

      1. Si no tienes la configuración de fecha límite predeterminada, es posible que tengas que proporcionar lo siguiente en la línea de comandos.

        ```
        --farm-id {{YOUR-FARM-ID}} --queue-id {{YOUR-QUEUE-ID}}
        ```

   1. Espera a que se complete el trabajo antes de continuar con el siguiente paso. 

1. Vuelva a ejecutar el comando sync-output.

   ```
    /path/to/deadline queue sync-output \
     --profile deadline-downloader \
     --farm-id YOUR_FARM_ID \
     --queue-id YOUR_QUEUE_ID \
     --storage-profile-id YOUR_PROFILE_ID \
     --checkpoint-dir /path/to/checkpoint/directory
   ```

1. Compruebe lo siguiente:
   + Los resultados del trabajo de prueba aparecen en el directorio de destino.
   + Se crea un archivo de puntos de control en el directorio de puntos de control especificado.

## Configure las descargas programadas
<a name="set-up-scheduled-downloads"></a>

Selecciona la pestaña de tu sistema operativo para aprender a configurar las descargas automáticas para cada 5 minutos.

------
#### [ Linux ]

1. **Verifique la fecha límite de instalación de CLI **

   Obtenga la ruta exacta a su ejecutable con fecha límite:

   ```
   $ which deadline
   ```

   Anote esta ruta (por ejemplo,`/opt/homebrew/bin/deadline`) para usarla en el archivo plist.

1. **Cree el directorio Checkpoint **

   Cree el directorio donde se almacenarán los archivos de los puntos de control. Asegúrese de que el usuario tenga los permisos adecuados para ejecutar el comando.

   ```
   $ mkdir -p /path/to/checkpoint/directory
   ```

1. **Cree un directorio de registros **

   Cree un directorio para los registros de trabajos de cron:

   ```
   $ mkdir -p /path/to/logs
   ```

   Considere configurar la rotación del registro en el archivo de registro utilizando https://www.redhat.com/en/blog/setting-logrotate

1. **Compruebe el Crontab actual **

   Consulta tu crontab actual para ver los trabajos existentes:

   ```
   $ crontab -l
   ```

1. **Edita Crontab **

   Abre tu archivo crontab para editarlo:

   ```
   $ crontab -e
   ```

   La primera vez que ejecutes el comando, es posible que se te pida que elijas un editor (nano, vim, etc.).

1. **Agregar entrada de trabajo de Cron **

   Añada la siguiente línea para ejecutar el trabajo cada 5 minutos (sustituya las rutas por los valores reales de los pasos 1 y 2):

   ```
   */5 * * * * /path/to/deadline queue sync-output --profile deadline-downloader --farm-id YOUR_FARM_ID --queue-id YOUR_QUEUE_ID --storage-profile-id YOUR_PROFILE_ID --checkpoint-dir /path/to/checkpoint/directory >> /path/to/logs/deadline_sync.log 2>&1
   ```

1. **Verifique la instalación de Cron Job **

   Tras guardar y salir del editor, compruebe que se ha añadido el trabajo cron:

   ```
   $ crontab -l
   ```

   Deberías ver tu nuevo trabajo en la lista.

1. **Verifique el estado del servicio Cron **

   Asegúrese de que el servicio cron esté en ejecución:

   ```
   # For systemd systems (most modern Linux distributions)
   $ sudo systemctl status cron
   # or
   $ sudo systemctl status crond
   
   # For older systems
   $ sudo service cron status
   ```

   Si no se está ejecutando, inícielo:

   ```
   $ sudo systemctl start cron
   $ sudo systemctl enable cron  # Enable auto-start on boot
   ```

------
#### [ macOS ]

1. **Verifique la fecha límite de instalación de CLI **

   Obtenga la ruta exacta a su ejecutable con fecha límite:

   ```
   $ which deadline
   ```

   Anote esta ruta (por ejemplo,`/opt/homebrew/bin/deadline`) para usarla en el archivo plist.

1. **Cree el directorio de puntos de control y el directorio de registros **

   Cree el directorio donde se almacenarán los archivos de los puntos de control:

   ```
   $ mkdir -p /path/to/checkpoint/directory
   $ mkdir -p /path/to/logs
   ```

   Considere configurar la rotación del registro en el archivo de registro utilizando https://formulae.brew.sh/formula/logrotate

1. **Crear un archivo Plist **

   Crea un archivo de configuración en `~/Library/LaunchAgents/com.user.deadlinesync.plist` con el siguiente contenido (`/path/to/deadline`sustitúyelo por la ruta actual del paso 1):

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
       <key>Label</key>
       <string>com.user.deadlinesync</string>
       <key>ProgramArguments</key>
       <array>
           <string>/path/to/deadline</string>
           <string>queue</string>
           <string>sync-output</string>
           <string>--profile</string>
           <string>deadline-downloader</string>
           <string>--farm-id</string>
           <string>YOUR_FARM_ID</string>
           <string>--queue-id</string>
           <string>YOUR_QUEUE_ID</string>
           <string>--storage-profile-id</string>
           <string>YOUR STORAGE PROFILE ID</string>
           <string>--checkpoint-dir</string>
           <string>/path/to/checkpoint/dir</string>
       </array>
       <key>RunAtLoad</key>
       <true/>
       <key>UserName</key>
       <string>YOUR_USER_NAME</string>
       <key>StandardOutPath</key>
       <string>/path/to/logs/deadline_sync.log</string>
       <key>StartInterval</key>
       <integer>300</integer>
   </dict>
   </plist>
   ```

   Sustituya `--storage-profile-id {{YOUR_PROFILE_ID}}` lo anterior por `--ignore-storage-profiles` si su máquina de descarga es la misma que la máquina de envío.

1. **Validar el archivo Plist **

   Valide la sintaxis XML de su archivo plist:

   ```
   $ plutil -lint ~/Library/LaunchAgents/com.user.deadlinesync.plist
   ```

   El comando devuelve «Aceptar» si el archivo es válido.

1. **Compruebe si existen agentes de lanzamiento o demonios de lanzamiento **

   Compruebe si ya hay un agente de lanzamiento cargado:

   ```
   $ launchctl list | grep deadlinesync
   OR
   $ sudo launchctl list | grep deadlinesync
   ```

   Si existe uno, descárguelo primero:

   ```
   $ launchctl bootout gui/$(id -u)/com.user.deadlinesync
   OR
   $ sudo launchctl bootout system/com.user.deadlinesync
   ```

1. **Crea y arranca **

   Para ejecutar esta tarea mientras el usuario ha iniciado sesión, ejecútela como ** LaunchAgent**. Para ejecutar esta tarea sin que un usuario inicie sesión cada vez que la máquina esté en funcionamiento, ejecútela como ** LaunchDaemon**.

   1. Para ejecutarla como **LaunchAgent: **

      1. Utilice la configuración creada en `~/Library/LaunchAgents/com.user.deadlinesync.plist`

      1. A continuación, cargue la configuración mediante el comando bootstrap:

         ```
         $ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.user.deadlinesync.plist
         ```

   1. Para ejecutarlo como ** LaunchDaemon**:

      1. Mueva el archivo Pilst y cambie los permisos ejecutando lo siguiente:

         ```
         $ sudo mv ~/Library/LaunchAgents/com.user.deadlinesync.plist /Library/LaunchDaemons/ 
         $ sudo chown root:wheel /Library/LaunchDaemons/com.user.deadlinesync.plist 
         $ sudo chmod 644 /Library/LaunchDaemons/com.user.deadlinesync.plist
         ```

      1. Cargue el agente de lanzamiento con el comando bootstrap moderno:

         ```
         $ sudo launchctl bootstrap system /Library/LaunchDaemons/com.user.deadlinesync.plist
         ```

1. **Verificar el estado **

   Si arrancaste, LaunchAgent ejecuta lo siguiente para confirmar que está cargado:

   ```
   $ launchctl list | grep deadlinesync
   ```

   Si has arrancado una LaunchDaemon, confirma que está cargada ejecutando:

   ```
   $ sudo launchctl list | grep deadlinesync
   ```

   La salida debería tener el siguiente aspecto

   ```
   SOME_PID_NUMBER 0 com.user.deadlinesync
   ```

   Para obtener información de estado detallada:

   ```
   $ launchctl print gui/$(id -u)/com.user.deadlinesync
   ```

   Muestra el estado actual, los argumentos del programa, las variables de entorno, el intervalo de ejecución y el historial de ejecución.

------
#### [ Windows ]

**nota**  
La tarea programada creada con estas instrucciones solo funciona cuando el usuario ha iniciado sesión.  
Para configurarla al iniciar el sistema sin necesidad de que el usuario inicie sesión, consulte la [Windows documentación oficial ](https://learn.microsoft.com/en-us/windows/win32/taskschd/using-the-task-scheduler) en el sitio web de Microsoft.

Para todos los pasos que se indican a continuación, utilice Command Prompt (ejecútelo como administrador):

1. **Verifique la fecha límite de instalación de CLI **

   Busque el ejecutable de la fecha límite:

   ```
   C:\> where deadline
   ```

   Anote la ruta completa (por ejemplo,`C:\Program Files\Amazon\DeadlineCloud\deadline.exe`) para usarla en la tarea.

1. **Cree el directorio de puntos de control **

   Cree el directorio donde se almacenarán los archivos de los puntos de control:

   ```
   C:\> mkdir "path\to\checkpoint\directory"
   ```

1. **Cree un directorio de registro **

   Cree un directorio para los registros de tareas:

   ```
   C:\> mkdir "path\to\logs"
   ```

1. **Crear un contenedor de archivos por lotes **

   Cree el archivo por lotes con el siguiente contenido:

   ```
   C:\> notepad C:\path\to\deadline_sync.bat
   ```

   ```
   YOUR_PATH_TO_DEADLINE.EXE queue sync-output --profile deadline-downloader --farm-id {{YOUR_FARM_ID}} --queue-id {{YOUR_QUEUE_ID}} --storage-profile-id {{YOUR_PROFILE_ID}} --checkpoint-dir path\to\checkpoint\checkpoints > path\to\logs\deadline.log 2>&1
   ```

1. **Archivo por lotes de prueba **

   Pruebe el archivo por lotes manualmente:

   ```
   C:\> .\path\to\deadline_sync.bat
   ```

   Compruebe que se creó el archivo de registro:

   ```
   C:\> notepad path\to\logs\deadline_sync.log
   ```

1. **Compruebe el servicio del programador de tareas **

   Asegúrese de que el servicio Programador de tareas esté en ejecución:

   ```
   C:\> sc query "Schedule"
   ```

   Si el servicio no existe, prueba con nombres alternativos:

   ```
   C:\> sc query "TaskScheduler"
   C:\> sc query "Task Scheduler"
   ```

   Si no se está ejecutando, inícielo:

   ```
   C:\> sc start "Schedule"
   ```

1. **Crear tarea programada **

   Cree la tarea para que se ejecute cada 5 minutos.

   ```
   C:\> schtasks /create /tn "DeadlineOutputSync" /tr "C:\path\to\deadline_sync.bat" /sc minute /mo 5
   ```

   Desglose de los comandos:
   + `/tn`- Nombre de la tarea
   + `/tr`- Tarea a ejecutar (su archivo por lotes)
   + `/sc minute /mo 5`- Programación: cada 5 minutos

1. **Verifique la creación de tareas **

   Compruebe que la tarea se creó correctamente:

   ```
   schtasks /query /tn "DeadlineOutputSync" /v /fo LIST
   ```

   Busque lo siguiente:
   + **Tarea a ejecutar**: Debería mostrar la ruta del archivo por lotes
   + **Tiempo de próxima ejecución**: debería mostrar una hora en 5 minutos

1. **Ejecución de la tarea de prueba **

   Ejecute la tarea manualmente para probar:

   ```
   schtasks /run /tn "DeadlineOutputSync"
   ```

   Compruebe el estado de la tarea:

   ```
   schtasks /query /tn "DeadlineOutputSync"
   ```

------

**Verificar la configuración**

Para comprobar que la configuración de las descargas automáticas se ha realizado correctamente, siga estos pasos.

1. Envía un nuevo trabajo de prueba.

1. Espere a que se complete un intervalo del programador, que en este caso es de 5 minutos.

1. Compruebe que las nuevas salidas se descarguen automáticamente.

Si las salidas no se descargan, consulte la sección de solución de problemas para ver los registros del proceso.

## Solución de problemas de descargas automáticas
<a name="auto-downloads-troubleshooting"></a>

Si tienes problemas con las descargas automáticas, comprueba lo siguiente:

### Códigos de error de descarga
<a name="download-error-codes"></a>

Cuando se produce un error en una ** descarga, en la ** columna de estado de descarga del monitor Deadline Cloud se indica el motivo y el `deadline queue sync-output` comando registra uno de los siguientes códigos de error. La mayoría de estos errores se resuelven en el equipo en el que se ejecuta el comando de descarga, que suele ser un equipo diferente del equipo en el que se ve el monitor.

`PERMISSION_DENIED`(Permiso denegado)  
El descargador no puede escribir en la ubicación de salida o se ha denegado el acceso a sus AWS credenciales. Conceda al usuario que ejecute el comando de descarga acceso de escritura a la ubicación de salida, confirme que el AWS perfil del comando tiene acceso a la cola y vuelva a ejecutar el comando.

`DISK_FULL`(Disco lleno)  
El equipo que ejecutaba la descarga se quedó sin espacio en disco. Libere espacio en la unidad que contiene la ubicación de salida y, a continuación, vuelva a ejecutar el comando.

`PATH_NOT_FOUND`(No se encontró la ruta)  
El destino de salida no existe o no está montado en la máquina que ejecuta la descarga. Crea el directorio o monta la unidad compartida y, a continuación, vuelve a ejecutar el comando.

`NETWORK_ERROR`(Error de red)  
Una interrupción de la red detuvo la transferencia. Los errores de red suelen ser transitorios. Vuelva a ejecutar el comando y compruebe la conectividad de la máquina si el error se repite.

`UNKNOWN`(Falló)  
El descargador no pudo identificar una causa específica. En el monitor aparece el ** mensaje Fallo ** para este código y para cualquier código que no reconozca. Compruebe el resultado del registro del `deadline queue sync-output` comando para ver si hay un error subyacente.

Un trabajo cuya descarga produce un error se vuelve a intentar automáticamente cada vez que se ejecuta más adelante. Tras cinco intentos fallidos, el descargador deja de volver a intentar la tarea e imprime una advertencia. Tras solucionar la causa, recupere el trabajo ejecutando el comando de descarga con una ventana retrospectiva que muestra cuándo finalizó el trabajo:

```
deadline queue sync-output --farm-id {{FARM_ID}} --queue-id {{QUEUE_ID}} \
    --storage-profile-id {{STORAGE_PROFILE_ID}} \
    --force-bootstrap --bootstrap-lookback-minutes {{1440}}
```

Pase ambas banderas juntas. La `--bootstrap-lookback-minutes` opción por defecto es 0, por lo que por sí `--force-bootstrap` sola no recupera nada.

### ¿Por qué se saltó mi trabajo?
<a name="download-skip-reasons"></a>

Cuando el descargador omite un trabajo, la ** columna de estado de la ** descarga indica el motivo directamente en la celda:

**Sin archivos adjuntos ** () `no_attachments`  
El trabajo no se envió con los archivos adjuntos del trabajo, por lo que no tiene ningún archivo de salida grabado para descargar. Algunos trabajos nunca producen resultados descargables, por lo que un trabajo omitido sin archivos adjuntos no suele requerir ninguna acción.

**Falta el perfil de almacenamiento ** () `missing_storage_profile`  
El trabajo se envió sin un perfil de almacenamiento, mientras que el comando de descarga usa uno, por lo que el descargador no sabe a qué lugar de cada máquina pertenecen los archivos del trabajo. No se descarga nada para el trabajo hasta que se haya configurado un perfil de almacenamiento para ello. El perfil de almacenamiento de un trabajo se establece cuando se envía el trabajo, así que envíe el trabajo con un perfil de almacenamiento y pase el mismo perfil al comando de descarga. En la tabla de tareas, el ** estado del perfil de almacenamiento ** faltante es un enlace que abre una explicación, un enlace a la documentación y un ** botón ** para solucionar problemas con IA. Para obtener más información, consulte Perfiles [ de almacenamiento para archivos adjuntos ](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/storage-profile.html) de trabajos.

Un trabajo omitido sin mostrar ningún motivo se canceló o detuvo antes de generar resultados. No necesita ninguna acción.

### ¿Es un problema de descarga o de renderizado?
<a name="download-failure-vs-render-failure"></a>

Un problema en la ** columna de estado de ** descarga de una tarea puede tener dos significados diferentes y tener soluciones diferentes. El texto de estado te indica cuál tienes:
+ **La ausencia de resultados ** en una tarea cuyo estado de ejecución es `FAILED` significa que la tarea no se pudo procesar en la granja. Nunca se produjo ningún archivo, por lo que no había nada que descargar. Su disco y su red funcionan bien. Revisa los registros de la tarea para encontrar el error de renderizado, corregirlo y volver a poner la tarea en cola. Una tarea también puede mostrar ** Sin resultados una ** vez finalizada correctamente sin escribir ningún archivo, lo cual es normal y no requiere ninguna acción.
+ Un nombre de error, como ** Permiso denegado**, significa que la tarea se ha procesado y su resultado existe y que no se han podido copiar los archivos al sistema de archivos. Resuelva el error utilizando[Códigos de error de descarga](#download-error-codes).

En la tabla de trabajos, ambos problemas aparecen como un segmento rojo en la barra de progreso de la descarga del trabajo. Abre la tabla de tareas del trabajo para diferenciarlos. Un trabajo en el que todas las tareas fallaron muestra un guión en lugar de un error de descarga, porque el trabajo nunca produjo resultados. La propia columna de estado del trabajo informa de ese error. Diagnosticar la descarga en estos casos de errores de renderización es una pérdida de tiempo, así que compruebe siempre primero el estado de ejecución de la tarea.

### Solucione problemas con IA
<a name="download-troubleshoot-with-ai"></a>

Los mensajes de error de descarga que aparecen en el monitor de Deadline Cloud, incluido el ** indicador rojo ** de error en la sincronización de salida, incluyen un botón ** para solucionar problemas con IA**. Este botón abre el asistente de Deadline Cloud, que lee el registro del estado de las descargas de tu lista de espera y te explica cuál ha sido el error específico, incluidos los comandos que debes ejecutar para solucionarlo.

Utilízalo cuando la descarga sigue fallando después de intentar solucionar el código de error, cuando veas un error que no reconozcas o cuando no estés seguro de en qué equipo se encuentra el problema. El botón aparece cuando el asistente de Deadline Cloud está activado en el monitor. Para obtener más información, consulte [Asistente Deadline Cloud](deadline-cloud-assistant.md).

### Problemas con el perfil de almacenamiento
<a name="storage-profile-issues"></a>
+ Un error similar al que `[Errno 2] No such file or directory` aparece `[Errno 13] Permission denied` en el archivo de registro puede estar relacionado con la falta de perfiles de almacenamiento o con una configuración incorrecta.
+ Consulte Perfiles [ de almacenamiento ](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/storage-profile-job-attachments.html) para obtener información sobre cómo configurar los perfiles de almacenamiento cuando la máquina de descarga es diferente de la máquina de envío.
+ Para descargas realizadas desde la misma máquina, prueba con la `--ignore-storage-profiles` bandera.

### Permisos de directorio
<a name="directory-permissions"></a>
+ Asegúrese de que el usuario del servicio de programación tenga:
  + Read/write acceso al directorio de puntos de control
  + Acceso de escritura al directorio de destino de salida
+ Para Linux ymacOS, utilícelo `ls -la` para comprobar los permisos.
+ ParaWindows, revise la configuración de seguridad en la carpeta Propiedades.

### Comprobando los registros del programador
<a name="checking-scheduler-logs"></a>

------
#### [ Linux ]

1. Compruebe si el servicio cron se está ejecutando:

   ```
   # For systemd systems
   $ sudo systemctl status cron
   # or
   $ sudo systemctl status crond
   
   # Check if your user has cron job correctly configured
   $ crontab -l
   ```

1. Ver los registros de ejecución de cron:

   ```
   # Check system logs for cron activity (most common locations)
   $ sudo tail -f /var/log/syslog | grep CRON
   $ sudo tail -f /var/log/cron.log | grep deadline
   
   # View recent cron logs
   $ sudo journalctl -u cron -f
   $ sudo journalctl -u crond -f  # On some systems
   ```

1. Revisa tus registros específicos de trabajos de cron:

   ```
   # View the log file specified in your cron job
   $ tail -100f /path/to/logs/deadline_sync.log
   ```

1. Busca la ejecución de un trabajo de cron en los registros del sistema:

   ```
   # Look for your specific cron job executions
   $ sudo grep "deadline.*sync-output" /var/log/syslog
   
   # Check for cron job starts and completions
   $ sudo grep "$(whoami).*CMD.*deadline" /var/log/syslog
   ```

1. Comprueba las actualizaciones de los archivos de Checkpoint:

   ```
   # List checkpoint files with timestamps
   $ ls -la /path/to/checkpoint/directory/
   
   # Check when checkpoint was last modified
   $ stat /path/to/checkpoint/directory/queue-*_download_checkpoint.json
   ```

1. Compruebe el archivo de registro:

   ```
   $ ls -la /path/to/log/deadline_sync.log
   ```

------
#### [ macOS ]

Visualización de los registros de ejecución del agente de lanzamiento:

1. Compruebe si el agente de lanzamiento se está ejecutando:

   ```
   $ sudo launchctl list | grep deadlinesync
   ```

   El resultado muestra: `PID Status Label` (El PID se mostrará `-` cuando no se esté ejecutando actualmente, lo cual es normal en los trabajos con intervalos)

1. Ver el estado detallado del agente de lanzamiento:

   ```
   $ sudo launchctl print system/com.user.deadlinesync
   ```

   Muestra el historial de ejecución, el último código de salida, el número de ejecuciones y el estado actual.

1. Vea los registros de ejecución del agente de lanzamiento:

   ```
   # View recent logs (last hour)
   log show --predicate 'subsystem contains "com.user.deadlinesync"' --last 1h
   
   # View logs from a specific time period
   log show --predicate 'subsystem contains "com.user.deadlinesync"' --start '2024-08-27 09:00:00'
   ```

1. Force la ejecución del agente de lanzamiento para realizar pruebas inmediatas:

   ```
   $ sudo launchctl kickstart gui/$(id -u)/com.user.deadlinesync
   ```

   Esto activa inmediatamente el trabajo independientemente de la programación, lo que resulta útil para las pruebas.

1. Compruebe las actualizaciones de los archivos de Checkpoint:

   ```
   # List checkpoint files with timestamps
   $ ls -la /path/to/checkpoint/directory/
   ```

1. Compruebe el archivo de registro:

   ```
   $ ls -la /path/to/log/deadline_sync.log
   ```

------
#### [ Windows ]

1. Compruebe si el servicio del programador de tareas está en ejecución:

   ```
   C:\> sc query "Schedule"
   ```

   Si el servicio no existe, prueba con nombres alternativos:

   ```
   C:\> sc query "TaskScheduler"
   C:\> sc query "Task Scheduler"
   ```

1. Consulta tus tareas programadas:

   ```
   C:> schtasks /query /tn "DeadlineOutputSync"
   ```

1. Revisa el archivo de registro de tu tarea:

   ```
   # View the log file created by your batch script
   C:> notepad C:\path\to\logs\deadline_sync.log
   ```

1. Comprueba las actualizaciones de los archivos de Checkpoint:

   ```
   # List checkpoint files with timestamps
   C:> dir "C:\path\to\checkpoint\directory" /od
   ```

------