호스트 컨트롤 데몬. 핑 요청 (ICMP)으로 다른 호스트를 모니터링하고 WOL (Wake on LAN) 패킷으로 일부를 제어하는 데몬.
주요 목적은 일부 Central Linux 호스트에서 하나/다중 Linux 호스트 (예 : SMB 서버)를 제어하는 것입니다. 이는 필요한 서버를 자동으로 종료하여 전원을 절약하는 것입니다.
hostcontrold 실행중인 중앙 호스트는 To Control Host (Server)뿐만 아니라이 서버의 클라이언트를 모니터링합니다. 구성된 클라이언트 호스트 중 하나가 Ping에 의해 감지되면 중앙 컨트롤러는 Magic WOL 패킷을 사용하여 서버 호스트를 시작합니다. 이를 통해 일부 클라이언트가 UP 및 실행중인 경우 서버 만 실행할 수 있습니다. 모든 클라이언트가 종료되면 지정된 시간 초과 기간 후 서버가 종료됩니다.
모든 기능 :
중앙 제어 Linux 호스트에서 저장소를 복제하십시오.
다음과 함께 빌드 종속성을 설치합니다.
sudo apt install make cmake g++ pkg-config libtool
빌드 및 설치 :
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
구성 파일은 /etc/hostcontrold.conf 에 있습니다. 작성된 구성 파일없이 데몬을 시작하면 기본 구성 파일이 생성됩니다. 서버 당 임의의 더 많은 서버 블록 및 임의의 클라이언트를 추가 할 수 있습니다.
Ping을 사용하여 호스트가 ICMP 요청에 응답하는지 테스트 할 수 있습니다.
ping 192.168.0.6
응용 프로그램 사용자가 사용자 clang SSH를 통해 로그인하는 데 사용하는 서버 호스트를 준비하는 데 사용할 수있는 명령의 예입니다.
ssh-keygen
ssh-copy-id [email protected]
다음 명령이 사용자 입력없이 작동하는 경우 모든 것이 정상인지 테스트 할 수 있습니다.
SystemD에 새로운 데몬을 알리고 시스템 시작시 AutostArt를 활성화하고 데몬을 시작하십시오.
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
sudo systemctl restart hostcontrold .
데몬 사용의 로그를 보려면 :
journalctl -e -u hostcontrold
설치 및 시작 후 데몬은 구성된 모든 호스트를 지속적으로 실행하고 모니터링합니다. 구성된 제어-디렉토리에서 on / off 파일로 시각화 된 서버 호스트의 상태를 볼 수 있습니다. 디렉토리에 간단한 파일을 만들면 특정 동작을 강요 할 수 있습니다.
| 파일 이름 | 콘텐츠 | 특징 |
|---|---|---|
force_on | 비어 있는 | 서버의 전원을 켜십시오 |
force_off | 비어 있는 | 서버의 전원을 낮추게합니다 |
구축 방법에 대한 정보는 Quick start guide 섹션의 Installation 단계를 참조하십시오.
코드 자체는 C ++ 14 코드를 사용하여 순수한 CMAKE 프로젝트로 구성됩니다. 코드 작업을 선호하는 IDE는 Clion입니다.
전체 개발 단계는 준비된 Docker 컨테이너에서도 수행 할 수 있습니다. 이들은 주로 다양한 분포/도구 체인에 GitHub Action Workflow를 사용하여 코드를 빌드하고 테스트하는 데 사용되지만 지역 개발에도 사용될 수 있습니다. GCC가있는 Ubuntu는 기본적으로 사용됩니다.
# Build the docker image.
./development/1_create.sh
# Create docker container and run it with the correct mounted volumes.
./development/2_run.sh
# Connect into the container.
./development/3_connect.sh
# Now you are logged-in the docker container.
cd /tmp/hostcontrold/
# Now you are in the source directory where you can compile and run tests e.g.
mkdir build
cd build
cmake ..
make -j4
# Leave the container with the following command when you are finished developing/testing.
exit
# Remove all signs of the docker container.
./development/5_remove.sh
단위 테스트의 경우 googletest 프레임 워크가 사용됩니다. 이것은 Docker 컨테이너에 자동으로 설치됩니다. 호스트에 직접 설치하려면 제공된 스크립트를 사용할 수 있습니다.
sudo development/install_gtest.sh
단위 테스트 바이너리는 CMAKE 대상 hostcontrold_test 에 의해 생성됩니다. 테스트를 실행하려면 바이너리 hostcontrold/unittest/hostcontrold_test 직접 실행하거나 ctest 프레임 워크를 사용하는 CMAKE 대상 test 구축하십시오.
sudo 필요하지 않을 수 있습니다. 이를 구성 할 수 있습니다.MIT
버전 번호, 릴리스, 태그 또는 분기가 없습니다. 마스터는 현재 안정적인 릴리스로 간주되어야합니다. 다른 모든 기존 지점은 기능/개발 지점이며 불안정한 것으로 간주됩니다.
Christian Lang [email protected]