🗂️
Хостинг

Inode тугади: дискда жой бор, лекин файл яратиб бўлмаяпти — сабаб ва ечим

14.11.2026
← Барча мақолалар

Хостингдан фойдаланувчилар баъзан ғалати вазиятга тушиб қолишади: панелда диск ҳажмининг ярми ҳам ишлатилмаган, лекин сайт янги расм юклай олмайди, WordPress плагин янгиланмайди, почта қутисига хат тушмайди. Хато хабарларида эса No space left on device ёки Disk quota exceeded деган ёзув чиқади. Бундай ҳолатда муаммо байтларда эмас, файллар сонида бўлади. Ҳар бир файл ва папка файл тизимида битта inode эгаллайди ва хостинг тарифларида одатда нафақат диск ҳажмига, балки inode сонига ҳам чегара қўйилади.

Inode нима ва нега у алоҳида тугайди

Inode — бу файл тизимидаги ёзув бўлиб, унда файл ҳақидаги маълумот сақланади: эгаси, рухсатлари, ўлчами ва маълумот дискнинг қаерида жойлашгани. Файл кичик бўладими ёки катта, у барибир битта inode олади. Шунинг учун битта 2 GB лик видео файл битта inode ишлатади, юз минг дона 1 KB лик кеш файли эса юз минг inode ишлатади, гарчи уларнинг умумий ҳажми атиги 100 MB атрофида бўлса ҳам. Айнан шу сабабли диск ҳажми бўш кўринса ҳам, файллар сони чегарасига етиб қолиш мумкин.

Inode лимити тугаганда тизим янги файл яратишга рухсат бермайди. Бу эса кўп нарсаларга таъсир қилади: PHP сессия файлларини ёза олмайди ва фойдаланувчилар тизимга кира олмайди, кеш плагини янги саҳифа сақлай олмайди, расм юклаш ишламайди, келган почта хатлари ҳам сақланмайди. Ташқаридан қараганда бу сайт "бузилгандек" кўринади, аслида эса битта папкада кераксиз файллар тўпланиб қолган бўлади.

Белгилар: муаммо айнан inode'дами

Аввал хостинг панелидаги статистикага қаранг. ISPmanager панелида фойдаланувчи ресурслари бўлимида диск ҳажми билан бирга файллар сони ва унинг чегараси ҳам кўрсатилади. Агар диск ҳажми паст, лекин файллар сони чегарага яқин бўлса, ташхис аниқ. sayt.uz мижозлари хостинг панелини тўғридан-тўғри кабинетдан очишлари мумкин, алоҳида логин киритиш шарт эмас.

Агар хостингингизда SSH ёқилган бўлса, ҳисобни терминал орқали ҳам текшириш мумкин. Қуйидаги буйруқ уй папкангиздаги жами файл ва папкалар сонини кўрсатади:

find ~ -xdev | wc -l

Шаред хостингда df -i буйруғи кўпинча бутун сервернинг кўрсаткичини беради, сизнинг шахсий квотангизни эмас, шунинг учун унга тўлиқ ишонманг. Шахсий лимитни панел ёки quota -s буйруғи аниқроқ кўрсатади, агар сервер унга рухсат берган бўлса.

Қайси папка файлларни тўплаган — топиш усули

Кейинги қадам — айбдор папкани топиш. GNU coreutils'нинг du буйруғи ҳажм ўрнига inode сонини санай олади. Қуйидаги буйруқ уй папкангизда энг кўп файл сақлаган 20 та папкани тартиб билан чиқаради:

du --inodes -x -d 3 ~ 2>/dev/null | sort -n | tail -20

Агар сервер эски бўлиб --inodes параметрини танимаса, худди шу ишни find билан қилса бўлади:

for d in ~/*/ ~/www/*/*/; do
  printf '%s %s\n' "$(find "$d" -xdev | wc -l)" "$d"
done | sort -n | tail -20

Натижада одатда бир-икки папка рўйхатнинг энг тепасида кескин ажралиб туради. Амалиётда энг кўп учрайдиган айбдорлар шулар: WordPress кеш плагинларининг wp-content/cache папкаси, PHP сессия файллари сақланадиган tmp папкаси, йиллар давомида тозаланмаган почта қутилари, очилиб қолган захира архивлари, ҳамда серверга тўлиқ юкланган node_modules ёки vendor папкалари.

Мисол: Тошкентдаги онлайн дўкон

Тасаввур қилинг, misol.uz манзилидаги кийим дўкони WooCommerce асосида ишлайди. Бир куни эрталаб эгаси маҳсулот расмларини юклай олмаётганини, мижозлар эса саватга маҳсулот қўша олмаётганини айтади. Панелда диск ҳажми 40 фоиз банд, лекин файллар сони чегарада. du --inodes буйруғи кўрсатишича, wp-content/cache папкасида бир неча юз минг файл бор: кеш плагини ҳар бир фильтр комбинацияси, ҳар бир ранг ва ўлчам учун алоҳида саҳифа сақлаган. Фильтрли каталогларда бундай "кеш портлаши" тез-тез учрайди.

Ечим икки босқичли бўлди. Аввал кеш плагини созламаларидан "кешни тозалаш" тугмаси босилди, аммо файллар жуда кўп бўлгани учун плагин вақт чегарасига етиб тўхтаб қолди. Шундан кейин кеш папкаси SSH орқали тозаланди ва плагин созламаларида фильтр параметрли URL'ларни кешламаслик ёқилди. Бир неча дақиқадан сўнг сайт нормал ишлай бошлади.

Хавфсиз тозалаш буйруқлари

Ўчиришдан олдин ҳар доим нима ўчираётганингизни кўриб чиқинг ва муҳим маълумот бўлса захира олинг. Кеш папкаси сайтнинг ўзи қайта яратадиган вақтинчалик файллардан иборат, шунинг учун уни тозалаш хавфсиз:

cd ~/www/misol.uz/wp-content/cache
find . -type f -delete

PHP сессия файллари одатда sess_ билан бошланади. Икки кундан эски сессияларни ўчириш фаол фойдаланувчиларга таъсир қилмайди:

find ~/tmp -type f -name 'sess_*' -mtime +2 -delete

Жуда кўп файл бўлган папкада rm -rf * буйруғи Argument list too long хатосини бериши мумкин, чунки шелл барча файл номларини битта қаторга йиғишга уринади. find ... -delete бу муаммога дуч келмайди ва катта ҳажмдаги тозалашда ишончлироқ. Агар SSH бўлмаса, ISPmanager файл менежери орқали папкани ўчириш мумкин, лекин юз минглаб файлда бу секин ишлайди ва вақт чегарасига учраши мумкин.

Почта қутилари ҳам inode ейди

Серверларда почта одатда Maildir форматида сақланади, яъни ҳар бир хат алоҳида файл. Бир неча йил давомида реклама хатлари, билдиришномалар ва спам ўчирилмаган қути ўн минглаб inode эгаллаши мумкин. Бундай ҳолларда почта дастурида эски хатларни архивлаш ёки "Спам" ва "Корзина" папкаларини тозалаш ёрдам беради.

Қайта такрорланмаслиги учун

Муаммони бир марта ҳал қилиш етарли эмас, унинг сабабини ҳам бартараф этиш керак. Кеш плагинида кешнинг яшаш муддатини чекланг ва автоматик тозалашни ёқинг. Сессия файлларини мунтазам тозалаш учун панелда кунлик cron вазифа қўшиш мумкин:

0 4 * * * find $HOME/tmp -type f -name 'sess_*' -mtime +2 -delete

Composer ёки npm билан ишлайдиган лойиҳаларда керакли кутубхоналарни серверда ўрнатинг, лекин build жараёнида ҳосил бўлган кераксиз папкаларни сақлаб қўйманг. Захира нусхаларни очиб сайтнинг ичида қолдирманг, уларни архив кўринишида сақланг ёки хостингдан ташқарига олиб чиқинг. Агар сайт табиий равишда жуда кўп файл билан ишласа, масалан катта расм галереяси ёки файл алмашиш хизмати бўлса, юқорироқ лимитли тариф ёки VPS ҳақида ўйлаш вақти келган бўлади. Аниқ лимитлар ва тариф танлови бўйича sayt.uz кабинетидан ёки техник ёрдам орқали маълумот олиш мумкин.

Ўхшаш мақолалар

💾 VPS снапшот ва захира нусха (бэкап) фарқи: қайси бири сизни қутқаради 🔄 git pull билан сайтни янгилаш: хостингда оддий ва ишончли деплой 🔀 Ҳар бир сайтга алоҳида PHP версияси: ISPmanager'да созлаш 🖥️ Ўзбекистонда хостинг танлаш 2026: маҳаллий ёки хорижий сервер
🌐 Тил
🇺🇿 O'zbek 🇺🇿 Ўзбек ✓ 🇷🇺 Русский 🇬🇧 English