πŸ“œ Bash скрипт для очистки систСмного кэша Π½Π° Linux

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш скриптом

by itisgood

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ ваТности управлСния систСмным кэшСм Π² Linux ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ bash-скрипт, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ процСсс очистки этого кэша.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для поддСрТания ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ систСмы, особСнно Π½Π° сСрвСрах с высокой Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ.

ΠœΡ‹ рассмотрим ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ очистки кэш-памяти, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ваша систСма останСтся ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΠΉ ΠΈ эффСктивной.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ систСмный кэш?

БистСмныС кэши Π² Linux – это Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ области хранСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Ρ‡Ρ‚ΠΎ ускоряСт ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ доступ ΠΊ этим Π΄Π°Π½Π½Ρ‹ΠΌ.

Π₯отя ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти.

🌐 Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ кСш DNS Π½Π° Linux

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Π±ΠΎΡ€ΡŽΡ‚ΡΡ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы.

Ручная очистка кэша ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° систСмы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° скрипта

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ nano создайтС Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

nano free_cache.sh

НаписаниС скрипта для очистки кэша

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс очистки систСмного кэша, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ bash-скрипт, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Π—Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ использованиС памяти.
  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ΅Ρ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ для очистки систСмного кэша Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.
  • Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚, ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ использованиС памяти Π΄ΠΎ ΠΈ послС очистки.
#!/bin/bash

# Function to purge caches
purging () {
    sudo sync
    sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
    sudo sync
    sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
}

# Function to generate the report
report() {
    local ip_address=$(curl -s -4 ident.me)
    echo -e "\n\n\n\nServer ${ip_address}'s cache Purging report:-\n-----Before Purging-----\n$(cat ~/old)\n\n-----After Purging-----\n$(free -wh)\nTimeStamp:- $(TZ='Asia/Kolkata' date)\n\n"
}

# Record the memory usage before purging
free -wh > ~/old

# Purge caches and generate the report
purging > /dev/null 2>&1 && report || echo -e "Kindly run with sudo rights\nExample:- sudo $0"

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°.

ПояснСниС ΠΊ скрипту:

  • ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° кэша: Ѐункция очистки ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ кэши ΠΏΡƒΡ‚Π΅ΠΌ записи Π² /proc/sys/vm/drop_caches. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Ρ€ΠΈ шага:
    echo 1 ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ кэш страниц.
    echo 2 ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ Π΄Π΅Π½Ρ‚Ρ€ΠΈ ΠΈ ΠΈΠ½ΠΎΠ΄Ρ‹.
    echo 3 ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ кэш страниц, Π΄Π΅Π½Ρ‚Ρ€ΠΈ ΠΈ ΠΈΠ½ΠΎΠ΄ΠΎΠ². Команда sudo sync Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ записи Π½Π° диск Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ очисткой.
  • ГСнСрация ΠΎΡ‚Ρ‡Π΅Ρ‚Π°: Ѐункция report ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ IP-адрСс сСрвСра ΠΈ создаСт ΠΎΡ‚Ρ‡Π΅Ρ‚, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ использованиС памяти Π΄ΠΎ ΠΈ послС очистки кэша. ВрСмСнная ΠΌΠ΅Ρ‚ΠΊΠ° коррСктируСтся Π² соотвСтствии с часовым поясом ‘Asia/Kolkata’.
  • Π—Π°ΠΏΠΈΡΡŒ использования памяти: скрипт фиксируСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ использованиС памяти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ free -wh ΠΈ сохраняСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ old Π² домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.
    Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: скрипт пытаСтся ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚. Если скрипт Π½Π΅ выполняСтся с ΠΏΡ€Π°Π²Π°ΠΌΠΈ sudo, ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ скрипт с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ привилСгиями.

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» исполняСмым

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ исполняСмым, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ chmod.

chmod +x free_cache.sh

Запуск сцСнария

ЗапуститС скрипт, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

sudo ./free_cache.sh

БистСма запустит процСсс очистки кэша ΠΈ создаст ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± использовании памяти Π² систСмС Π΄ΠΎ ΠΈ послС.Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ систСмным кэшСм являСтся Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом поддСрТания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Linux-сСрвСра.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСдоставлСнный bash-скрипт, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс очистки систСмного кэша, Ρ‚Π΅ΠΌ самым освобоТдая ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΎΡ‚Π·Ρ‹Π²Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ систСмы.

РСгулярная очистка систСмного кэша ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Π΅ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΎΠΉ памяти, ΠΈ обСспСчит ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ вашСго сСрвСра.

см. Ρ‚Π°ΠΊΠΆΠ΅:

 

 

You may also like

Leave a Comment