Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π·ΠΈΠ½ΡƒΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ
Найти Π² Π”Π·Π΅Π½Π΅
Π£Ρ€ΠΎΠΊΠΈ Linux

πŸ› οΈ Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ systemd

πŸ› οΈ Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ systemd ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ! πŸš€ Π₯ΠΎΡ‡Π΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΠΉ сСрвСр сам слСдил Π·Π° рСсурсами ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΠ» ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…? Π’ΠΎΠ³Π΄Π° Π΄Π°Π²Π°ΠΉ погрузимся Π² ΠΌΠΈΡ€ systemd β€” ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ инструмСнта для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°! Π—Π°Ρ‡Π΅ΠΌ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ? - ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ постоянный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° CPU, RAM ΠΈ дисками - ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² - ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автопСрСзапуск слуТб, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ example-сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ процСссора ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³. Всё просто: - БоздаСшь ΡŽΠ½ΠΈΡ‚-Ρ„Π°ΠΉΠ» monitor-resources.service [Unit] Description=ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов [Service] Type=oneshot ExecStart=/usr/local/bin/check_resources.sh - И скрипт check_resources.sh, Π³Π΄Π΅ пишСшь свои ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ: #!/bin/bash CPU_LOAD=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}') if (( $(echo "$CPU_LOAD > 80" | bc -l) )); then echo "Высокая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU: $CPU_LOAD%" | systemd-cat -p warning fi - И Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΡˆΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°

πŸ› οΈ Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСский ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ systemd

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ! πŸš€

Π₯ΠΎΡ‡Π΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΠΉ сСрвСр сам слСдил Π·Π° рСсурсами ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΠ» ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…? Π’ΠΎΠ³Π΄Π° Π΄Π°Π²Π°ΠΉ погрузимся Π² ΠΌΠΈΡ€ systemd β€” ΠΌΠΎΡ‰Π½ΠΎΠ³ΠΎ инструмСнта для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°!

Π—Π°Ρ‡Π΅ΠΌ это Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½ΠΎ?

- ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ постоянный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° CPU, RAM ΠΈ дисками

- ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ увСдомлСния ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²

- ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автопСрСзапуск слуТб, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ example-сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ процСссора ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³. Всё просто:

- БоздаСшь ΡŽΠ½ΠΈΡ‚-Ρ„Π°ΠΉΠ» monitor-resources.service

[Unit]

Description=ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов

[Service]

Type=oneshot

ExecStart=/usr/local/bin/check_resources.sh

- И скрипт check_resources.sh, Π³Π΄Π΅ пишСшь свои ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ:

#!/bin/bash

CPU_LOAD=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')

if (( $(echo "$CPU_LOAD > 80" | bc -l) )); then

echo "Высокая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CPU: $CPU_LOAD%" | systemd-cat -p warning

fi

- И Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΡˆΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°ΠΉΠΌΠ΅Ρ€ systemd:

[Unit]

Description=Π’Π°ΠΉΠΌΠ΅Ρ€ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° рСсурсов

[Timer]

OnBootSec=1min

OnUnitActiveSec=5min

[Install]

WantedBy=timers.target

- Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΡˆΡŒ сСрвис ΠΈ Ρ‚Π°ΠΉΠΌΠ΅Ρ€:

sudo systemctl enable --now monitor-resources.timer

Π’Π΅ΠΏΠ΅Ρ€ΡŒ систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сама!

Π“ΠΎΡ‚ΠΎΠ² Π»ΠΈ Ρ‚Ρ‹ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠ΅ свою инфраструктуру? Π’Π΅Π΄ΡŒ ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΡƒΡ‡ΡˆΠ΅ радуСтся систСмному Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Ρƒ, Ρ‡Π΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСм!

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… статСй Ρ‚Ρ‹ найдСшь Π² нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ https://t.me/LinuxSkill, Π° вакансии для систСмных администраторов β€” Π² Π±ΠΎΡ‚Π΅ https://t.me/gradeliftbot.

πŸ“© Π—Π°Π²Ρ‚Ρ€Π°: Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Fail2Ban Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚! Π’ΠΊΠ»ΡŽΡ‡ΠΈ πŸ””, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ!