2025-05-23 06:45:33 +00:00
2025-05-22 23:04:49 +03:00
2025-05-23 00:19:29 +03:00
2025-05-23 00:19:29 +03:00
2025-04-14 01:32:28 +03:00
2025-03-15 23:49:02 +03:00
2025-05-22 23:59:07 +03:00
2025-05-23 00:19:29 +03:00

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

Сборка проекта

Для сборки проекта выполните команду:

make all

Сборка производится в директории соответствующих подпроектам дирректориях. Там же будут размещены исполняемые файлы:

  • myRPC-client/myRPC-client
  • myRPC-server/myRPC-server

Подлючение библиотеки проекта

  1. При работе на локальном машине, требуется подключить библиотеку libmysyslog для работоспособности проекта.
  2. Выполните следующую команду:
export LD_LIBRARY_PATH=/home/user/myRPC/libmysyslog:$LD_LIBRARY_PATH

Использование

Настройка сервера

Создайте конфигурационный файл /etc/myRPC/myRPC.conf со следующим содержимым:

# Порт, на котором будет слушать сервер
port = 1234
# Тип сокета : stream(TCP) или dgram(UDP)
socket_type = stream

Создайте файл со списком разрешенных пользователей /etc/myRPC/users.conf:

# Список разрешённых пользователей
username1
username2
username3

Запустите сервер:

sudo myRPC-server

Использование клиента

myRPC-client -h <адрес_сервера> -p <порт> -s -c "команда bash"

Пример:

myRPC-client -h 127.0.0.1 -p 1234 -s -c "ls -la"

Создание deb-пакетов

Для сборки deb-пакетов выполните:

make deb

Создание локального репозитория

Для создания локального репозитория APT выполните:

make repo

После этого вы сможете устанавливать пакеты через apt:

sudo apt-get install myrpc-client myrpc-server

systemd unit

make systemd_install

Очистка

Очистка временных файлов и папок:

make clean
Description
No description provided
Readme 88 KiB
Languages
C 70.8%
Makefile 29.2%