โฮสต์ควบคุม daemon Daemon ซึ่งตรวจสอบโฮสต์อื่น ๆ ที่มีคำขอ ping (ICMP) และควบคุมบางส่วนด้วยแพ็คเก็ต WOL (Wake on LAN)
วัตถุประสงค์หลักคือการควบคุมโฮสต์หนึ่ง/หลาย Linux (เช่นเซิร์ฟเวอร์ SMB) โดยโฮสต์ Linux กลางบางตัว นี่คือการประหยัดพลังงานโดยการปิดเซิร์ฟเวอร์ที่ไม่จำเป็นต้องใช้โดยอัตโนมัติ
โฮสต์กลางที่ hostcontrold กำลังทำงานอยู่ตรวจสอบไม่เพียง แต่การควบคุมโฮสต์ (เซิร์ฟเวอร์) แต่ยังรวมถึงไคลเอนต์ของเซิร์ฟเวอร์นี้ด้วย หากหนึ่งในโฮสต์ไคลเอนต์ที่กำหนดค่าถูกตรวจพบโดย ping คอนโทรลเลอร์กลางเริ่มต้นโฮสต์เซิร์ฟเวอร์โดยใช้แพ็กเก็ต Wol Magic สิ่งนี้จะช่วยให้สามารถเรียกใช้เซิร์ฟเวอร์ได้เฉพาะในกรณีที่ลูกค้าบางรายกำลังทำงานอยู่ หากลูกค้าทั้งหมดปิดตัวลงเซิร์ฟเวอร์จะปิดตัวลงหลังจากระยะเวลาหมดเวลาที่กำหนด
คุณสมบัติทั้งหมด:
โคลนที่เก็บบนโฮสต์ Linux ควบคุมส่วนกลางของคุณ
ติดตั้ง Build Dependencies ด้วย:
sudo apt install make cmake g++ pkg-config libtool
สร้างและติดตั้ง:
cd hostcontrold && mkdir build && cd build
cmake ..
sudo make -j4 install
ไฟล์การกำหนดค่าอยู่ที่ /etc/hostcontrold.conf หากคุณเริ่ม daemon โดยไม่มีไฟล์ config ที่สร้างขึ้นไฟล์เริ่มต้นจะถูกสร้างขึ้น คุณสามารถเพิ่มบล็อกเซิร์ฟเวอร์เพิ่มเติมและไคลเอนต์โดยพลการต่อเซิร์ฟเวอร์
คุณสามารถทดสอบได้ว่าการตอบสนองของโฮสต์ต่อคำขอ ICMP โดยใช้ Ping:
ping 192.168.0.6
ตัวอย่างของคำสั่งที่ผู้ใช้แอปพลิเคชันสามารถใช้เพื่อเตรียมโฮสต์เซิร์ฟเวอร์ที่ผู้ใช้ clang ควรใช้ในการเข้าสู่ระบบผ่าน SSH:
ssh-keygen
ssh-copy-id [email protected]
คุณสามารถทดสอบได้ว่าทุกอย่างโอเคถ้าคำสั่งต่อไปนี้ทำงานได้โดยไม่ต้องป้อนข้อมูลผู้ใช้:
ให้ Systemd ทราบว่า daemon ใหม่เปิดใช้งาน Autostart เมื่อเริ่มต้นระบบและเริ่ม daemon
sudo systemctl daemon-reload
sudo systemctl enable hostcontrold
sudo systemctl start hostcontrold
ใช้ sudo systemctl restart hostcontrold หลังจากเปลี่ยนการกำหนดค่า
เพื่อดูบันทึกการใช้งานของ daemon:
journalctl -e -u hostcontrold
หลังจากการติดตั้งและเริ่มต้น Daemon จะทำงานและตรวจสอบโฮสต์ที่กำหนดค่าทั้งหมดอย่างต่อเนื่อง คุณสามารถดูสถานะของโฮสต์เซิร์ฟเวอร์ที่มองเห็นได้ด้วยไฟล์ on / off ในไดเรกทอรีควบคุมที่กำหนดค่า โดยการสร้างไฟล์ง่าย ๆ ในไดเรกทอรีคุณสามารถบังคับพฤติกรรมเฉพาะบางอย่าง:
| ชื่อไฟล์ | เนื้อหา | คุณสมบัติ |
|---|---|---|
force_on | ว่างเปล่า | จะทำให้เซิร์ฟเวอร์เปิดใช้งาน |
force_off | ว่างเปล่า | จะทำให้เซิร์ฟเวอร์หมดลง |
ดูขั้นตอน Installation ในส่วน Quick start guide สำหรับข้อมูลวิธีการสร้าง
รหัสนั้นถูกจัดระเบียบเป็นโครงการ CMake บริสุทธิ์ด้วยรหัส C ++ 14 IDE ที่ต้องการในการทำงานบนรหัสคือ clion
ขั้นตอนการพัฒนาทั้งหมดสามารถทำได้ในคอนเทนเนอร์ Docker ที่เตรียมไว้ สิ่งเหล่านี้ส่วนใหญ่จะใช้ในการสร้างและทดสอบรหัสด้วยเวิร์กโฟลว์การกระทำของ GitHub ในการแจกแจง/เครื่องมือที่แตกต่างกัน แต่ยังสามารถใช้สำหรับการพัฒนาในท้องถิ่น Ubuntu กับ GCC ถูกใช้โดยค่าเริ่มต้น
# 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 Target hostcontrold_test ในการเรียกใช้การทดสอบโดยตรงจะดำเนินการโดยตรง Binary hostcontrold/unittest/hostcontrold_test หรือสร้าง test เป้าหมาย CMake ซึ่งใช้ ctest Framework
sudo อนุญาตให้กำหนดค่าสิ่งนี้มิกซ์
ไม่มีหมายเลขเวอร์ชันเผยแพร่แท็กหรือสาขา อาจารย์ควรได้รับการพิจารณาว่าเป็นรุ่นที่เสถียรในปัจจุบัน สาขาอื่น ๆ ที่มีอยู่ทั้งหมดเป็นสาขาคุณสมบัติ/การพัฒนาและถือว่าไม่เสถียร
Christian Lang [email protected]