> For the complete documentation index, see [llms.txt](https://leossnet.gitbook.io/jetcalc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://leossnet.gitbook.io/jetcalc/prilozheniya/komandi-administrirovaniya-servera.md).

# В. Команды Linux

## Скрипт обновления системы

* **./update.sh**  - запуск скрипта из текущей директории

Для запуска скрипта обновления системы из домашней директории нужно выполнить следующие команды (при условии, что система уже установлена в директории /htdocs/jetcalc):

```
cd ~
sudo su
cp /htdocs/jetcalc/update.sh ~/update.sh
chmod 777 ./update.sh
./update.sh
```

Содержимое файла **update.sh**:

```
#!/bin/bash

cd /htdocs/jetcalc
git pull
grunt
node admin.js compile
npm i
node admin.js syncsqlstructure
cd /htdocs/jetcalc
cp /htdocs/jetcalc/install/catalogue.json /htdocs/jetcalc/static/custom/catalogue.json
cp /htdocs/jetcalc/install/translate.json /htdocs/jetcalc/static/custom/translate.json
pm2 restart start.json
```

## Команды PM2 (кластер для калькуляторов и сервера):

Перед выполнением следующих команд нужно зайти под **root** выполнив команду **sudo su** и введя свой пароль.

* **pm2 start start.json** - старт системы с нуля
* **pm2 stop all** - остановить все калькуляторы
* **pm2 start all** - запустить все калькуляторы
* **pm2 reload all** - мягкая перезагрузка системы (рекомендуется для перезагрузки)
* **pm2 restart all** - перезапустить все калькуляторы
* **pm2 logs** - просмотр логов калькуляторов в реальном времени
* **pm2 monit** - онлайн мониторинг запущенных процессов
* **pm2 show jetcalc** - показать подробные данные о процессе jetcalc
* **pm2 delete all** - остановить и удалить все из пула pm2
* **pm2 save** - сохранить конфигурацию пула pm2
* **pm2 flush** - зачистит все логи

При изменении конфигурационного файла **/htdocs/jetcalc/start.json** нужно выполнить следующие команды, которые сбрасывают и повторно инициализируют настройки пула **pm2**:

```
cd /htdocs/jetcalc
pm2 stop all
pm2 delete start.json
pm2 start start.json
pm2 save
```

## Управление пользователями <a href="#upravlenie_polzovatelyami" id="upravlenie_polzovatelyami"></a>

Добавление пользователя осуществляется при помощи команды **useradd**. Пример использования:

```
sudo adduser vpupkin
```

Изменить пароль пользователю можно при помощи утилиты **passwd**.

```
sudo passwd vpupkin
```

Для добавления пользователю root-прав с помощью команды **sudo** нужно добавить в файл **/etc/sudoers** строку:

```
vpupkin ALL=(ALL:ALL) ALL
```

## Обновление системы

Для поддержания системы в актуальном состоянии необходимо периодически обновлять установленные пакеты с помощью команды apt-get:

```
sudo apt-get update
sudo apt-get upgrade
```

Если при выполнении первой команды выйдет сообщение об ошибке вида:

```
W: An error occurred during the signature verification. 
The repository is not updated and the previous index files will be used.
```

то в этом случае для начала нужно вывести список просроченных ключей:

```
apt-key list | grep expired
```

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

```
apt-key adv --recv-keys --keyserver keys.gnupg.net 7BD9BF62
```

После этого повторить команды:

```
sudo apt-get update
sudo apt-get upgrade
```
