Найти Π² Π”Π·Π΅Π½Π΅
Π£Ρ€ΠΎΠΊΠΈ Linux

πŸ› οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ написаниС скриптов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивным

πŸ› οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ написаниС скриптов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивным ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ! πŸš€ Π—Π½Π°Π΅ΡˆΡŒ Π»ΠΈ Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ скриптов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅Ρ€Π²ΠΎΠ²? БСгодня расскаТу, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π²ΠΎΠΈ bash-скрипты Ρ‡ΠΈΡ‰Π΅, понятнСС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅. πŸ” ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ успСха - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Ρ‚Π°ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ: function log() { echo "$(date): $1"; } - Π‘Π΄Π΅Π»Π°ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ошибок послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: command || { echo "Ошибка!"; exit 1; } - Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” ΠΎΠ½ΠΈ пояснят смысл Π΄Π°ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄: # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ - Π‘Π»Π΅Π΄ΠΈ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния β€” ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ скрипты ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π΅Π΅. πŸ”§ ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ - Для логирования β€” пСрСнаправляй Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»: ./script.sh > output.log 2>&1 - АвтоматизированноС ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ запуску β€” Π² случаС ошибок: while ! command; do sleep 1; done - Установи ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипты Π»Π΅Π³Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ: SCRIPT_DIR

πŸ› οΈ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ написаниС скриптов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивным

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ! πŸš€

Π—Π½Π°Π΅ΡˆΡŒ Π»ΠΈ Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ скриптов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅Ρ€Π²ΠΎΠ²? БСгодня расскаТу, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π²ΠΎΠΈ bash-скрипты Ρ‡ΠΈΡ‰Π΅, понятнСС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.

πŸ” ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ успСха

- Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Ρ‚Π°ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ:

function log() { echo "$(date): $1"; }

- Π‘Π΄Π΅Π»Π°ΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ошибок послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

command || { echo "Ошибка!"; exit 1; }

- Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” ΠΎΠ½ΠΈ пояснят смысл Π΄Π°ΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄:

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Ρ„Π°ΠΉΠ»Π° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ

- Π‘Π»Π΅Π΄ΠΈ Π·Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ окруТСния β€” ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ скрипты ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π΅Π΅.

πŸ”§ ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π»Π°ΠΉΡ„Ρ…Π°ΠΊΠΈ

- Для логирования β€” пСрСнаправляй Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»:

./script.sh > output.log 2>&1

- АвтоматизированноС ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ запуску β€” Π² случаС ошибок:

while ! command; do sleep 1; done

- Установи ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипты Π»Π΅Π³Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ:

SCRIPT_DIR=$(dirname "$0")

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ Ρ‚Π²ΠΎΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, даст ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ сэкономит врСмя.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Π° Ρƒ тСбя Π΅ΡΡ‚ΡŒ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ‚Ρ€ΡŽΠΊ ΠΏΡ€ΠΈ написании скриптов? Π”Π΅Π»ΠΈΡΡŒ Π² коммСнтариях!

πŸ’¬ ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ°Π΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с нашим ΠΊΠ°Π½Π°Π»ΠΎΠΌ https://t.me/LinuxSkill β€” Ρ‚Π°ΠΌ большС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… статСй, Π° Π² Π±ΠΎΡ‚Π΅ https://t.me/gradeliftbot β€” ΠΆΠ΄ΡƒΡ‚ вакансии ΠΈ тСсты для ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΊΠΈ!

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