[Документация Yandex Cloud](../../../index.md) > [Yandex DataSphere](../../index.md) > [Концепции](../index.md) > [DataSphere Jobs](index.md) > DataSphere CLI

# DataSphere CLI

Для запуска заданий DataSphere Jobs используется утилита DataSphere CLI.

Чтобы установить DataSphere CLI, в [виртуальном окружении Python](https://docs.python.org/3.10/library/venv.html) выполните команду:

```python
pip install datasphere
```

После завершения установки вы можете посмотреть справку, запустив команду с флагом `-h`:

```bash
datasphere -h
```

Результат выполнения команды:

```bash
usage: datasphere [-h] [-t TOKEN] [-l {ERROR,WARNING,INFO,DEBUG}] [--log-config LOG_CONFIG] [--log-dir LOG_DIR] [--profile PROFILE] {version,changelog,project,generate-requirements} ...

positional arguments:
  {version,changelog,project,generate-requirements}
    version             Show version
    changelog           Show changelog
    generate-requirements
                        Generate requirements for specified root module(s)

options:
  -h, --help            show this help message and exit
  -t TOKEN, --token TOKEN
                        YC OAuth token, see https://yandex.cloud/en/docs/iam/concepts/authorization/oauth-token
  -l {ERROR,WARNING,INFO,DEBUG}, --log-level {ERROR,WARNING,INFO,DEBUG}
                        Logging level
  --log-config LOG_CONFIG
                        Custom logging config
  --log-dir LOG_DIR     Logs directory (temporary directory by default)
  --profile PROFILE     `yc` utility profile
```

## Команды DataSphere CLI {#commands}

Для управления заданиями и утилитой воспользуйтесь командами:

* [запуск](#execute) и восстановление сессии задания;
* [просмотр](#list) информации о заданиях;
* [отмена](#cancel) задания;
* [установка](#set-data-ttl) времени жизни данных задания;
* [генерация](#generate-requirements) параметров окружения задания;
* [получение](#projects-list) списка проектов сообщества;
* [получение](#project-get) информации о проекте;
* [просмотр](#version) версии DataSphere CLI;
* [просмотр](#changelog) журнала изменений DataSphere CLI.

### Запуск заданий {#execute}

Чтобы запустить задание, выполните команду:

```bash
datasphere project job execute -p <идентификатор_проекта> -c <файл_конфигурации>
```

Где:

* `<идентификатор_проекта>` — идентификатор проекта DataSphere, в котором вы будете запускать задание.
* `<файл_конфигурации>` — путь к [файлу конфигурации задания](index.md#config).

Чтобы запускать задания с помощью сервисного аккаунта, [аутентифицируйтесь](../../../cli/operations/authentication/service-account.md) от его имени в Yandex Cloud CLI и [добавьте](../../operations/projects/update.md) его в список участников проекта DataSphere с [ролью](../../security/index.md) `datasphere.community-projects.developer`. Если вы запускаете задание с ВМ [Yandex Compute Cloud](../../../compute/index.md), [привяжите](../../../compute/operations/vm-connect/auth-inside-vm.md#link-sa-with-instance) к ней этот сервисный аккаунт.

Запуск задания блокирует сессию командной оболочки до завершения задания. [Логи](#logs) работы кода задания будут выведены в стандартные потоки вывода `stdout` и ошибок `stderr`. Системные логи выполнения задания будут записаны в отдельный файл в рабочей директории пользователя.

Если в процессе выполнения задания сессия командной оболочки прервалась, задание продолжит выполняться в DataSphere, однако логи выполнения не будут сохраняться. Чтобы возобновить запись логов, восстановите сессию, выполнив команду:

```bash
datasphere project job attach --id <идентификатор_задания>
```

Узнать идентификатор задания можно в интерфейсе DataSphere во вкладке DataSphere Jobs на странице проекта.

Отслеживание и запись логов возобновятся после восстановления сессии задания.

Чтобы [повторно](fork.md) запустить задание, выполните команду:

```bash
datasphere project job fork
```

### Просмотр информации о задании {#list}

Вы можете посмотреть все прошедшие и текущие задания проекта, выполнив команду:

```bash
datasphere project job list -p <идентификатор_проекта>
```

В ответ вернется таблица со следующими полями:

* идентификатор задания;
* имя;
* описание;
* статус;
* дата начала выполнения и окончания задания (если оно уже завершилось);
* имя пользователя, запустившего задание.

Чтобы посмотреть информацию о конкретном задании, выполните команду:

```bash
datasphere project job get --id <идентификатор_задания>
```

### Отмена задания {#cancel}

Вы можете остановить и отменить выполнение задания двумя способами:

1. Если у вас запущена сессия командной оболочки с заданием в процессе выполнения, нажмите **Ctrl** + **C**.
1. Если вы хотите остановить выполнение задания, не связанного с активной сессией командной оболочки, выполните команду:

   ```bash
   datasphere project job cancel --id <идентификатор_задания>
   ```

Запущенное задание будет остановлено.

### Установка времени жизни данных задания {#set-data-ttl}

Вы можете установить время жизни данных задания, выполнив команду:

```bash
datasphere project job set-data-ttl --id <идентификатор_задания> --days <количество_дней>
```

Где `--days` — количество дней, по прошествии которых данные задания будут удалены (по умолчанию — 14 дней).

### Генерация параметров окружения задания {#generate-requirements}

Чтобы сгенерировать параметры окружения вашего задания, выполните команду:

```bash
datasphere generate-requirements <корневой_модуль>
```

Где `<корневой_модуль>` — корневой модуль задания.

В ответ вернется файл `requirements.txt` со списком параметров окружения для указанного модуля. Его можно использовать в [файле конфигурации](index.md#config) задания для явного указания зависимостей.

### Получение списка проектов сообщества {#project-list}

Вы можете посмотреть все проекты сообщества, выполнив команду:

```bash
datasphere project list -c <идентификатор_сообщества>
```

В ответ вернется таблица со следующими полями:

* идентификатор проекта;
* название проекта;
* идентификатор сообщества.

### Получение информации о проекте {#project-get}

Чтобы посмотреть информацию о конкретном проекте, выполните команду:

```bash
datasphere project get --id <идентификатор_проекта>
```

В ответ вернется таблица со следующими полями:

* идентификатор проекта;
* название проекта;
* идентификатор сообщества.

### Просмотр версии DataSphere CLI {#version}

Чтобы посмотреть текущую версию DataSphere CLI, выполните команду:

```bash
datasphere version
```

{% note info %}

При каждом использовании DataSphere CLI проверяется актуальность текущей версии. Если будет обнаружена новая версия, утилита выведет соответствующее сообщение. Чтобы избежать проблем с совместимостью, обновляйте DataSphere CLI по мере появления новых версий.

{% endnote %}

### Посмотреть журнал изменений DataSphere CLI {#changelog}

Чтобы посмотреть изменения в актуальной версии DataSphere CLI, выполните команду:

```bash
datasphere changelog
```

## Логи заданий {#logs}

При запуске задания через DataSphere CLI командная оболочка первым сообщением уведомляет пользователя о сохранении логов в рабочей директории пользователя. Например:

```bash
2024-05-16 12:42:35,447 - [INFO] - logs file path: C:\Temp\datasphere\job_2024-05-16T12-42-35.427056
```

После выполнения задания в рабочей директории пользователя можно найти следующие файлы:

* `stdout.txt` — стандартный поток вывода пользовательской программы.
* `stderr.txt` — стандартный поток сообщений об ошибках.
* `system.log` — системный лог настройки ВМ и установки пакетов окружения.
* `log.txt` — общий лог утилиты DataSphere CLI, в который записывается ход выполнения задания.
* `docker_stats.tsv` — лог о потребляемых [Docker-образом](../docker.md) ресурсах, таких как задействованная мощность процессора, скорости чтения и записи, используемый объем оперативной памяти и скорость загрузки. Эту информацию также можно получить с помощью [команды](https://docs.docker.com/reference/cli/docker/container/stats/) `docker stats`.
* `gpu_stats.tsv` — лог об использовании графического процессора: количество ядер, задействованная мощность и видеопамять.

Чтобы изменить директорию для хранения логов, воспользуйтесь командой:

```bash
datasphere --log-dir <новая_директория>
```

Вы можете загрузить [результаты](../../operations/projects/use-job-results.md) задания, выполнив команду:

```bash
datasphere project job download-files --id <идентификатор_задания>
```

#### Полезные ссылки {#see-also}

* [Запуск заданий DataSphere Jobs](../../operations/projects/work-with-jobs.md)
* [Использование результатов работы выполненных заданий](../../operations/projects/use-job-results.md)