Диагностика по 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 /us
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 4
Раздел Пользователи
В этом разделе отображается место занятой файлами пользователя и лимит квоты на дисковое пространство:
Нам интересны показатели в красном четырехугольнике.
ВАЖНО! Вы не сможете посмотреть реальный объем диска и занимаемого пространства в данном разделе. Это лишь пользовательские квоты.
Раздел Используемые ресурсы
В этом разделе отображается различная информация о сервере, в том числе Дисковое пространство - суммарное значение квот пользователей.
ВАЖНО! Дисковое пространство не отображает реальный объем диска и занимаемого пространства. Это лишь пользовательские квоты.
В некоторых случаях у вас может отображаться информация о Размер диска - это реальный показатель занимаемого и общего размер диска.
Диагностика в ISPmanager 5
Раздел Пользователи
В этом разделе отображается размер дискового пространства в мегабайтах, которое занимают файлы пользователя (занято/доступно).
В панели управления не отображается занятое дисковое пространство.
В логе панели ошибка:
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-доменов, доменных имен, баз данных и т.п. Кроме того, вы можете просмотреть более подробную информацию о некоторых ресурсах, и, в зависимости от выбранного параметра, выполнить дополнительные действия над ним.
Частые проблемы
Файлы сессий
Обычно их занимают файлы сессий. Они сохраняются в директориях пользователей mod-tmp
В линуксах /var/www/user_name/data/mod-tmp
и во FreeBSD /home/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 в Linux
/home/httpd-logs во FreeBSD
Смотрим размер логов
[root@host www]# du -hs /var/www/httpd-logs/*
4,0K /var/www/httpd-logs/you_domain.ru.access.log
4,0K /var/www/httpd-logs/you_domain.ru.error.log
[root@host www]#
находим большие и можем обнулить их
# :> /var/www/httpd-logs/you_domain.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@you_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 /путь/до/скрипта