myRPC/README.md
2025-05-23 00:19:29 +03:00

132 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# myRPC
## Описание
Проект **myRPC** представляет собой систему удалённого выполнения команд через RPC (Remote Procedure Call). Проект включает клиентское приложение `myRPC-client` и серверное приложение-демон `myRPC-server`, которые взаимодействуют через сокеты.
## Структура проекта
```
myRPC/
├── libmysyslog/
│ ├── Makefile
│ ├── README.md
│ ├── libmysyslog.c
│ └── libmysyslog.h
├── systemd/
│ └── myrpc-server.service
├── myRPC-client/
│ ├── Makefile
│ ├── README.md
│ └── src/
│ └── myRPC-client.c
├── myRPC-server
│ ├── Makefile
│ ├── README.md
│ └── src/
│ └── myRPC-server.c
└── Makefile
```
## Требования
- gcc
- libconfig (`sudo apt-get install libconfig-dev`)
- dpkg-deb
## Сборка проекта
Для сборки проекта выполните команду:
```bash
make all
```
Сборка производится в директории соответствующих подпроектам дирректориях. Там же будут размещены исполняемые файлы:
- `myRPC-client/myRPC-client`
- `myRPC-server/myRPC-server`
### Подлючение библиотеки проекта
1. При работе на локальном машине, требуется подключить библиотеку `libmysyslog` для работоспособности проекта.
2. Выполните следующую команду:
```sh
export LD_LIBRARY_PATH=/home/user/myRPC/libmysyslog:$LD_LIBRARY_PATH
```
## Использование
### Настройка сервера
Создайте конфигурационный файл `/etc/myRPC/myRPC.conf` со следующим содержимым:
```conf
# Порт, на котором будет слушать сервер
port = 1234
# Тип сокета : stream(TCP) или dgram(UDP)
socket_type = stream
```
Создайте файл со списком разрешенных пользователей `/etc/myRPC/users.conf`:
```conf
# Список разрешённых пользователей
username1
username2
username3
```
Запустите сервер:
```bash
sudo myRPC-server
```
### Использование клиента
```bash
myRPC-client -h <адрес_сервера> -p <порт> -s -c "команда bash"
```
Пример:
```bash
myRPC-client -h 127.0.0.1 -p 1234 -s -c "ls -la"
```
## Создание deb-пакетов
Для сборки deb-пакетов выполните:
```bash
make deb
```
## Создание локального репозитория
Для создания локального репозитория APT выполните:
```bash
make repo
```
После этого вы сможете устанавливать пакеты через apt:
```bash
sudo apt-get install myrpc-client myrpc-server
```
## systemd unit
```bash
make systemd_install
```
## Очистка
Очистка временных файлов и папок:
```bash
make clean
```