From c2d8f143c10263033c2e2797e6421af081f02629 Mon Sep 17 00:00:00 2001 From: gandc Date: Fri, 23 May 2025 00:19:29 +0300 Subject: [PATCH] README add/update --- README.md | 23 ++++++++++++----- myRPC-client/README.md | 25 ++++++++++++++++++ myRPC-server/README.md | 57 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 myRPC-client/README.md create mode 100644 myRPC-server/README.md diff --git a/README.md b/README.md index 2ea1a48..442ec33 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,19 @@ 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 @@ -39,10 +42,18 @@ myRPC/ make all ``` -Сборка производится в директории `build`. Там же будут размещены исполняемые файлы: +Сборка производится в директории соответствующих подпроектам дирректориях. Там же будут размещены исполняемые файлы: -- `build/myRPC-client` -- `build/myRPC-server` +- `myRPC-client/myRPC-client` +- `myRPC-server/myRPC-server` + +### Подлючение библиотеки проекта + +1. При работе на локальном машине, требуется подключить библиотеку `libmysyslog` для работоспособности проекта. +2. Выполните следующую команду: +```sh +export LD_LIBRARY_PATH=/home/user/myRPC/libmysyslog:$LD_LIBRARY_PATH +``` ## Использование @@ -69,19 +80,19 @@ make all Запустите сервер: ```bash -sudo ./build/myRPC-server +sudo myRPC-server ``` ### Использование клиента ```bash -./build/myRPC-client -h <адрес_сервера> -p <порт> -s -c "команда bash" +myRPC-client -h <адрес_сервера> -p <порт> -s -c "команда bash" ``` Пример: ```bash -./build/myRPC-client -h 127.0.0.1 -p 1234 -s -c "ls -la" +myRPC-client -h 127.0.0.1 -p 1234 -s -c "ls -la" ``` ## Создание deb-пакетов diff --git a/myRPC-client/README.md b/myRPC-client/README.md new file mode 100644 index 0000000..5a4f0c0 --- /dev/null +++ b/myRPC-client/README.md @@ -0,0 +1,25 @@ +Консольная утилита для отправки команд на удалённый myRPC-сервер. + +## Сборка + +```bash +cd myRPC-client +make all +``` + +В результате появится исполняемый файл `myRPC-client`. + +## Использование + +```bash +./myRPC-client -s|--stream | -d|--dgram \ + -h \ + -p <порт> \ + -c|--command "bash команда" +``` + +Примеры: +```bash +./myRPC-client -s -h 192.168.0.10 -p 1234 -c "ls -la /tmp" +./myRPC-client --dgram --host 10.0.0.5 --port 4321 --command "df -h" +``` \ No newline at end of file diff --git a/myRPC-server/README.md b/myRPC-server/README.md new file mode 100644 index 0000000..e7a14fe --- /dev/null +++ b/myRPC-server/README.md @@ -0,0 +1,57 @@ +Служба-демон для удалённого выполнения команд по протоколу myRPC. + +## Зависимости + +- GCC (gcc) +- libconfig (`libconfig-dev`) +- libmysyslog (собирается в подпроекте `libmysyslog`) +- pkg-config + +Установите зависимости: +```bash +sudo apt-get update +sudo apt-get install -y gcc make libconfig-dev pkg-config +``` + +## Сборка + +```bash +cd myRPC-server +make all +``` + +- Соберётся бинарник `myRPC-server` в текущей папке. +- Он автоматически требует, чтобы в соседней папке `../libmysyslog` уже была собрана библиотека `libmysyslog.a` или `.so`. Если не собрана, запустите там `make all`. + +## Настройка + +1. Создайте каталог `/etc/myRPC`: + ```bash + sudo mkdir -p /etc/myRPC + ``` +2. Файл `/etc/myRPC/myRPC.conf`: + ```conf + port = 1234; + socket_type = "stream"; # stream или dgram + ``` +3. Файл `/etc/myRPC/users.conf` — список разрешённых пользователей, по одному на строку: + ``` + alice + bob + ``` + +## Запуск +```bash +sudo ./myRPC-server +``` + +## Пакет + +Создать DEB-пакет: +```bash +make deb +``` +Получится `MyRPC_server_1.0-0_all.deb`. Устанавливается командой: +```bash +sudo dpkg -i MyRPC_server_1.0-0_all.deb +``` \ No newline at end of file