# Linux

## Щоб оновити сервер IES для Linux, вам потрібно зробити наступне:

1\. Відключити захист даних на IES.

2\. Оновити сервер, використовуючи інструкцію нижче.

3\. Знову увімкніть захист даних.

## Варіант 1 (за допомогою скрипту)

Щоб оновити сервер, ви можете використовувати скрипт `update.sh`, який знаходиться в каталозі IES (за замовчуванням `/opt/IES`). Ви можете запустити його вручну або через веб-інтерфейс (натиснувши на версію сервера). Якщо оновлення доступне, вам буде запропоновано оновити сервер за допомогою сценарію. Якщо ви змінили розташування сервера, назву служби для запуску, ви можете вручну оновити необхідні параметри в скрипті.

Сценарій має такі параметри командного рядка:

\--dir - шлях до бінарної директорії IES. За замовчуванням `/opt/IES`

\--service - ім'я IES-сервісу. За замовчуванням IES

\--url - URL для завантаження файлу оновлення. За замовчуванням, URL-адреса буде взята з <https://update.ipi.com/hes/build.json>

Але ви можете змінити ці параметри. Наприклад, щоб оновити IES в офлайн режимі, з файлу «linux\_x64\_latest.tar.gz», розташованого в домашній директорії користувача, ви можете запустити сценарій таким чином:

`/opt/IES/update.sh --url file://~/linux_x64_latest.tar.gz`

або, якщо оновлення знаходиться на іншому вашому ресурсі:\
`update.ps1 --url https://<your_resource/linux_x64_latest.tar.gz`

## Варіант 2 (без використання скрипту)

### 2.1. Зупинення служби IES

```
  $ sudo systemctl stop IES
```

### 2.2. Резервне копіювання бінарного і конфігураційного файлів IES

```
  $ sudo mv /opt/IES /opt/IES.old
```

### 2.3. Резервне копіювання бази даних

* Для MySQL:

Наступна команда створить копію (dump) бази `hesdb` у файлі `hesdb.sql` у директорії `/opt/IES.old`:

```
  $ sudo mysqldump -uroot -p<MySQL_root_password>  hesdb > /opt/IES.old/hesdb.sql
```

Змініть `<MySQL_root_password>` на ваш реальний пароль.

* Для Microsoft SQL Server:

Наступна команда створить резервну копію бази даних `hesdb` у файлі `hesdb.bak` у директорії `/var/opt/mssql/data`:

```
sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [hesdb] TO DISK = N'/var/opt/mssql/data/hesdb.bak' WITH NOFORMAT, NOINIT, NAME = 'db-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
```

### 2.4.Завантажте нову версію IES

```
$ cd ~
$ curl -O https://update.ipi.com/hes/linux_x64_latest.tar.gz
$ tar -xvf linux_x64_latest.tar.gz
$ sudo mv IES /opt/
```

### 2.5. Відновіть конфігураційний файл

```
  $ sudo cp /opt/IES.old/appsettings.Production.json /opt/IES/appsettings.Production.json
```

### 2.6. Перезапустіть IES і перевірте його статус

```
  $ sudo systemctl restart IES
  $ sudo systemctl status IES

  
  ● IES-ipi.example.com.service - IPI Enterprise Service
   Loaded: loaded (/usr/lib/systemd/system/IES-ipi.example.com.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-03-25 10:48:12 UTC; 16s ago
 Main PID: 4657 (IES.Web)
   CGroup: /system.slice/IES.service
           └─4657 /opt/IES/IES.Web

Mar 25 10:48:12 hesservertest systemd[1]: Started IPI Enterprise Service.
```

**Перевіривши, що оновлення пройшло успішно і все працює нормально, ви можете видалити копії бази даних і сервера:**

```
$ sudo rm -rf /opt/IES.old
```

## Якщо щось піде не так, ви можете відновити сервер IES за допомогою наступних команд

Відновити директорію з попередньою версією IES:

```
$ sudo systemctl stop IES
$ sudo mv /opt/IES.old /opt/IES
```

Відновити базу даних:

* Для MySQL database:

```
$ sudo mysql -uroot -p<MySQL_root_password> hesdb < /opt/IES.old/hesdb.sql
```

Змінити `<MySQL_root_password>` на ваш реальний пароль.

* Для Microsoft SQL Server:

```
$ sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [hesdb] FROM DISK = N'/var/opt/mssql/data/hesdb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
```

Потім перезапустіть IES:

```
$ sudo systemctl start IES
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://enterprise-ipi-ua.hideez.com/korporativnii-server-ipi/rozgortannya/onovlennya-hes/linux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
