Jump to content
Sign in to follow this  

Диагностика занимаемого дискового пространства в Linux

Sign in to follow this  
k010v

2,087 views

Диагностика по SSH

Если вы хотите узнать сколько места у вас занято на дисках и чем конкретно оно занято вам нужно подключиться к серверу по SSH

И использовать команды df и du с различными ключами. Например:

Команда df

Узнать сколько занято и сколько всего у нас места:
[root@hostname ~]# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       1.1T  290G  752G  28% /

Size - общий размер диска,

Used - используется места,

Avail - доступное место на диске.

В нашем примере, занято 290 Гб, свободно 752Гб.

Команда du

Узнать какая директория занимает больше всего места:

[root@host ~]# du -hs /*
32K	/aquota.group
20K	/aquota.user
7.5M	/bin
74M	/boot
188K	/dev
50M	/etc
4.0K	/home
358M	/lib
23M	/lib64
16K	/lost+found
4.0K	/media
4.0K	/mnt
561M	/opt
0	/proc
48G	/root
15M	/sbin
4.0K	/selinux
4.0K	/srv
0	/sys
352M	/tmp 
172M	/user2153294
15G	/usr
265G 	/var

После того как нашли директорию которая занимает много и вы не знаете что в ней занимает место, можно выполнить эту же команду, но указав в качестве параметры нужную директорию

[root@host ~]# du -hs /usr/*
66M	/usr/bin
4.0K	/usr/etc
4.0K	/usr/games
25M	/usr/include
321M	/usr/lib
162M	/usr/lib64
40M	/usr/libexec
3.2G	/usr/local
28M	/usr/sbin
11G	/usr/share
12K	/usr/src
0	/usr/tmp

Так же можно комбинировать данную команду с другими, например grep, для того чтобы выводились только директории занимающие более гигабайта (G в колонке размера)

[root@host ~]# du -hs /usr/* | grep G
3.2G	/usr/local
11G	/usr/share

Команда repquota

Repquota отобразит квоту пользователей, текущее состояние и ее лимит. ISPmanager считает квоту по группе пользователей, поэтому команда будет выглядеть так:

[root@host ~]# repquota -g / | grep user21
user211 --  254948       0 5242880           1756     0     0       
user212 -- 2622280       0 5242880          37930     0     0       
user213 --  668776       0 5242880          35090     0     0       
user214 --   43860       0 5242880           2507     0     0       
user215 --   75788       0 5242880           8950     0     0       
user216 -- 24864532       0 78643200            267     0     0       
user217 --  297576       0 5242880           1820     0     0       
user218 --  129208       0 5242880          11305     0     0       
user219 --  411052       0 5242880          15262     0     0       

Диагностика в ISPmanager 5

Раздел Пользователи

В этом разделе отображается размер дискового пространства в мебибайтах, которое занимают файлы пользователя (занято/доступно).

Pic 147.png
magnify-clip.png

В панели управления не отображается занятое дисковое пространство.

В логе панели ошибка:

Dec  5 16:09:02 [3228:38] proc EXTINFO Run '/bin/sh -c quotasync\ -g\ /' pid 3658
Dec  5 16:09:02 [3228:38] proc EXTINFO Process 3658 finished with status 1

Такое поведение характерно для файловой системы reiserfs (вирутализация OpenVZ).

Для решения проблемы достаточно добавить в файл конфигурации ispmgr.conf (или ispmgrnode.conf если речь о ISPmanager Business) опцию DisableQuotasync.

Option DisableQuotasync - если указана данная опция, панель не будет вызывать команду quotasync перед получением информации о системных квотах.

После добавления опции в конфиг необходимо перезапустить панель командой killall core

Значение занятого дискового пространства в ISPmanager отличается от того, что показывает команда du

  • Например, в панели управления в разделе "Пользователи" отображается информация по занятому дисковому пространству: 880/1000 MB

Но du -sh на директорию пользователя показывает 1,6 GB

Это означает, что в директории пользователя есть файлы, группа которых не соответствует группе пользователя.

Найти такие файлы поможет команда

find /var/www/user/ -not -group user
  • Если же команда du , наоборот, показывает меньшее значение, чем в панели, то значит за пределами домашней директории есть файлы, принадлежащие группе пользователя.

Найти такие файлы можно с помощью команды

find / -path /var/www/user/  -group user

 

Раздел Ограничения (ISPmanager Business)

В данном модуле представлена информация об использовании ресурсов пользователем панели управления, включая количество web-доменов, доменных имен, баз данных и т.п. Кроме того, вы можете просмотреть более подробную информацию о некоторых ресурсах, и, в зависимости от выбранного параметра, выполнить дополнительные действия над ним.

Pic 148.png
magnify-clip.png

Частые проблемы

Файлы сессий

Обычно их занимают файлы сессий. Они сохраняются в директориях пользователей mod-tmp

В линуксах /var/www/user_name/data/mod-tmp

чтобы удалить файлы из папок необходимо перейти в эту директорию командой

# cd  /www/user_name/data/mod-tmp

где user_name это имя вашего пользователя. И выполняете команду

# find . -type f -name 'sess_*' -delete

Логи

Так же много места могут занимать файлы логов. Расположены они обычно в директории
/var/log

/var/www/httpd-logs

Смотрим размер логов

[root@ashamans www]# du -hs /var/www/httpd-logs/*
4,0K /var/www/httpd-logs/ashamans.ru.access.log
4,0K /var/www/httpd-logs/ashamans.ru.error.log
[root@ashamans www]#

находим большие и можем обнулить их

# :>  /var/www/httpd-logs/ashamans.ru.error.log

 

Полезные скрипты

Уведомление о заканчивающемся свободном месте (PHP)

Создайте файл с содержимым:

<?php

$bash_run = "df -m | grep \"/dev/vdisk\" | awk '{print $4}'";
$freespace = exec($bash_run);

$srv_ip=$_SERVER['SERVER_ADDR']; // ip- адрес проверяемого сервера

if ($freespace < 5000) // 5 Gb
{ mail(
"mail@mail.ru",
"!!! FreeSpase on the Server $srv_ip !!! // chech_disk_space_to_email.php ",
"Warning!!! On the Server $srv_ip Freespace = $freespace Mb"
);
}

Добавьте выполнение данного скрипта в cron:

# crontab -e
0 */2 * * *  php /путь/до/скрипта
 
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...