Хостинг тарифидаги диск ҳажми чекланган ва у кўпинча сезилмасдан тўлиб боради. Бир куни панелда диск 90 фоизга етганини кўрасиз, лекин сайтга ҳеч қандай катта нарса юкламагандек туюласиз. Аслида жойни одатда бир нечта кўзга кўринмас "еювчи"лар эгаллайди: унутилган захира архивлари, ўсиб кетган журнал файллари, очилиб қолган эски сайт нусхалари. Уларни тахминан қидириш ўрнига, бир неча буйруқ билан аниқ топиш мумкин. Ушбу мақолада айнан шу тартибни босқичма-босқич кўриб чиқамиз.
Юқоридан пастга: папкалар бўйича қидириш
Энг самарали усул — бутун уй папкасидан бошлаб, энг оғир папкани топиш ва унинг ичига қадам-бақадам тушиш. Бунинг учун du буйруғи ишлатилади. Қуйидаги буйруқ уй папкангиздаги биринчи даражадаги ҳар бир папканинг ҳажмини кўрсатади ва уларни кичикдан каттага қараб тартиблайди:
cd ~
du -xh -d 1 2>/dev/null | sort -h
Бу ерда -x параметри бошқа файл тизимларига ўтиб кетмасликни, -d 1 эса фақат бир даража чуқурликни кўрсатишни билдиради. Рўйхатнинг охиридаги папка энг кўп жой эгаллаган папка бўлади. Кейин шу папкага кириб буйруқни такрорлайсиз ва шундай қилиб айбдорга етиб борасиз. Масалан, агар www папкаси катта чиқса, кейинги қадам аниқ сайт папкасини текшириш бўлади:
du -xh -d 1 ~/www/example.uz 2>/dev/null | sort -h | tail -10
WordPress сайтларида одатда wp-content/uploads ва wp-content ичидаги захира плагинлари папкалари юқорига чиқади. Бошқа тизимларда эса журнал ва кеш папкалари кўп жой эгаллайди.
Энг катта файлларни тўғридан-тўғри топиш
Баъзан папкалар бўйлаб юриш ўрнига, бутун ҳисобдаги энг катта файлларни бир рўйхатда кўриш қулайроқ. Қуйидаги буйруқ 50 MB дан катта файлларни топиб, уларнинг энг катталари 20 тасини ўқилиши осон ўлчамда чиқаради:
find ~ -xdev -type f -size +50M -printf '%s\t%p\n' 2>/dev/null \
| sort -n | tail -20 | numfmt --field=1 --to=iec
Натижада одатда бир қарашда нима ортиқча экани кўриниб қолади: backup-2024.zip, old-site.tar.gz, бир неча гигабайтли error_log. Агар серверингизда numfmt бўлмаса, охирги қисмини олиб ташланг, ўлчамлар байтларда кўрсатилади.
Одатда кимлар жой эгаллайди
Захира архивлари ва база dump'лари
Энг кўп учрайдиган ҳолат — сайт ичида қолдирилган захира нусхалар. Кўчириш пайтида яратилган архив, плагин ҳар куни яратган нусхалар ёки қўлда олинган база экспорти ойлаб ўчирилмасдан туради. Уларни турига қараб қидириш мумкин:
find ~ -xdev -type f \( -name '*.zip' -o -name '*.tar.gz' -o -name '*.sql' \
-o -name '*.sql.gz' -o -name '*.wpress' \) -printf '%s\t%p\n' 2>/dev/null \
| sort -n | numfmt --field=1 --to=iec
.wpress кенгайтмаси All-in-One WP Migration плагини архивларига тегишли. Керакли энг охирги нусхани компьютерингизга юклаб олинг, қолганларини ўчиринг. Муҳими, захира нусха сайт билан бир жойда сақланса, сервер билан бирор муаммо бўлганда у ҳам йўқолади, демак у барибир тўлиқ ҳимоя бермайди.
Ўсиб кетган журнал файллари
PHP хатоларни кўпинча скрипт жойлашган папкадаги error_log файлига ёзади. Агар сайтда доимий такрорланадиган огоҳлантириш бўлса, бу файл бир неча ойда гигабайтларга етади ва у турли папкаларга тарқалиб кетган бўлиши мумкин. Барчасини бир буйруқ билан топасиз:
find ~/www -type f -name 'error_log' -size +5M -printf '%s\t%p\n' \
| sort -n | numfmt --field=1 --to=iec
Журнални ўчиришдан олдин унинг охирги қаторларини tail -50 error_log билан кўриб чиқинг: у кўпинча сайтдаги ҳақиқий хатони кўрсатади. Хатони тузатмасангиз, файл яна ўсади. Файлни ўчириш ўрнига : > error_log билан бўшатиш хавфсизроқ.
Яширин папкалар
Нуқта билан бошланадиган папкалар оддий рўйхатда кўринмайди, аммо жой эгаллайди. Composer, npm ёки pip каби воситалар ўз кешини ~/.cache, ~/.npm ёки ~/.composer папкаларида сақлайди ва улар юзлаб мегабайтга етиши мумкин:
du -sh ~/.[!.]* 2>/dev/null | sort -h
Бу кеш папкаларини ўчириш хавфсиз, воситалар керак бўлганда уларни қайта яратади. Фақат .ssh каби созлама папкаларига тегманг.
Мисол: мактаб сайти ва дарс видеолари
Самарқанддаги хусусий мактабнинг example.uz сайти оддий WordPress сайт бўлиб, унда янгиликлар ва дарс жадвали эълон қилинади. Бир ой ичида диск ҳажми тўлиб қолди. du билан қидириш wp-content/uploads папкасини кўрсатди, ичкарироқ тушилганда эса жорий ой папкасида ўқитувчилар тўғридан-тўғри юклаган бир неча гигабайтли дарс видеолари топилди. Охирги бир ҳафтада юкланган катта файлларни топиш учун қуйидаги буйруқ ишлатилди:
find ~/www -xdev -type f -size +20M -mtime -7 -printf '%TY-%Tm-%Td %s\t%p\n' \
| sort
Ечим сифатида видеолар видео хостингга жойлаштирилиб, сайтга фақат уларнинг плеери қўйилди, асл файллар эса хостингдан ўчирилди. Бу нафақат дискни бўшатди, балки саҳифаларнинг очилишини ҳам тезлаштирди, чунки катта видеоларни оддий хостинг орқали узатиш серверга оғир юк туширади.
Нимани ўчириш мумкин, нимага тегмаслик керак
Топилган ҳар бир файлни ўчиришдан олдин унинг нима эканини тушуниб олинг. Кеш папкалари, эски журналлар, очилиб қолган архивлар ва эски сайт нусхалари одатда хавфсиз ўчирилади. wp-content/uploads ичидаги расмлар, маълумотлар базаси файллари, почта қутилари ва созлама файллари эса сайтнинг бир қисми, уларни ўйламасдан ўчириш сайтни бузади. Шубҳа бўлса, файлни аввал компьютерга юклаб олинг ёки номини ўзгартириб бир неча кун кузатинг.
SSH бўлмаса ҳам, хостинг панелидаги файл менежери орқали папкалар ҳажмини кўриб чиқиш мумкин, лекин катта ҳисобларда бу секинроқ ишлайди. sayt.uz мижозлари панелни кабинетдан очиб, диск бўйича статистикани кўришлари, SSH кириши ёки тариф ҳажми бўйича саволларни эса техник ёрдамга ёзишлари мумкин. Дискни ойига бир марта шу тартибда кўриб чиқиш кутилмаган "диск тўлди" хатоларидан сақлайди.