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

πŸ› οΈ Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bash

πŸ› οΈ Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bash ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Ρ‚Π΅Ρ…Π½ΠΎ-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ! πŸš€ Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠ΅Ρ‡Ρ‚Π°Π» ΠΈΠΌΠ΅Ρ‚ΡŒ волшСбного ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ слСдил Π·Π° Ρ‚Π²ΠΎΠΈΠΌ сСрвСром ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π» ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…? БСгодня расскаТу, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой минималистичный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ прямо Π² Bash. ΠŸΡ€ΠΎΡΡ‚ΠΎ, ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… утяТСлСний! Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ? - ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ CPU ΠΈ памяти - ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ дискового пространства - ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ email) Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ CPU ΠΈ памяти, ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ² отправляСт ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: #!/bin/bash CPU_THRESHOLD=80 MEM_THRESHOLD=90 DISK_THRESHOLD=90 CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}') MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}') DISK_USAGE=$(df / | grep / | awk '{print $5}' | sed 's/%//') if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then echo "CPU Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²Ρ‹ΡˆΠ΅ ${CPU_THRESHOLD}%!" fi if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then echo "Памя

πŸ› οΈ Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ рСсурсов сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bash

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Ρ‚Π΅Ρ…Π½ΠΎ-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ! πŸš€ Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠ΅Ρ‡Ρ‚Π°Π» ΠΈΠΌΠ΅Ρ‚ΡŒ волшСбного ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ слСдил Π·Π° Ρ‚Π²ΠΎΠΈΠΌ сСрвСром ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π» ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…? БСгодня расскаТу, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой минималистичный ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ прямо Π² Bash. ΠŸΡ€ΠΎΡΡ‚ΠΎ, ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… утяТСлСний!

Π§Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ?

- ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ CPU ΠΈ памяти

- ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ дискового пространства

- ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ email)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ CPU ΠΈ памяти, ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ² отправляСт ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅:

#!/bin/bash

CPU_THRESHOLD=80

MEM_THRESHOLD=90

DISK_THRESHOLD=90

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

MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')

DISK_USAGE=$(df / | grep / | awk '{print $5}' | sed 's/%//')

if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then

echo "CPU Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π²Ρ‹ΡˆΠ΅ ${CPU_THRESHOLD}%!"

fi

if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then

echo "ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ исчСрпана!"

fi

if [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then

echo "Диск bijna penuh!"

fi

Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· cron β€” ΠΈ всё: Ρ‚Π²ΠΎΠΉ сСрвСр Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… сСрвисов. А ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΡˆΡŒ? МоТно Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ письма, Π»ΠΎΠ³Π³Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Slack.

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ Π»ΠΈ Π²Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΅Ρ‰Π΅ ΡƒΠΌΠ½Π΅Π΅?

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π² наш ΠΊΠ°Π½Π°Π» https://t.me/LinuxSkill Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Π½ΠΎΠ²ΠΈΠ½ΠΊΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ тСсты Π² Π±ΠΎΡ‚ https://t.me/gradeliftbot β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² своих знаниях!

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