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-clientmyRPC-server/myRPC-server
Подлючение библиотеки проекта
- При работе на локальном машине, требуется подключить библиотеку
libmysyslogдля работоспособности проекта. - Выполните следующую команду:
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
Languages
C
70.8%
Makefile
29.2%