Назад | Перейти на главную страницу

Как увеличить размер каталога / var?

Первый вопрос:

Когда я бегу df -h Я вижу это:

# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad4s1a    9.7G    8.0G    918M    90%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ad4s1d    1.8T    6.7G    1.6T     0%    /home
procfs         4.0K    4.0K      0B   100%    /proc
linprocfs      4.0K    4.0K      0B   100%    /usr/compat/linux/proc
devfs          1.0K    1.0K      0B   100%    /var/named/dev

Почему не отображаются такие каталоги, как:

/var /etc /usr

? На моем более раннем выделенном сервере я мог просматривать все доступные размеры разделов, но здесь я получил только /home и /...

Второй вопрос:

Как я могу увеличить /var Размер раздела? Потому что за 2 часа работы этот раздел стал заполнен ...

В df Команда сообщает об использовании дискового пространства файловой системой. Ваш /var /etc и /usr не являются отдельной файловой системой, они являются частью / файловая система. У вас всего 2 файловые системы / и /home.

Если вы можете переустановить систему, вы можете изменить разделы, чтобы создать /var файловая система подходящего размера.

Если вы не можете, вы можете попробовать создать ссылку /var ->/home/var но особенности того, как это сделать, зависят от вашего доступа к системе.

Как упоминалось выше, вы не можете увеличивать /var поскольку это не отдельный ФС. Но вы можете переместить его из / к большему FS как /home. Единственное предложение - использовать dump/restore вместо этого переместить текущее содержимое / var в новое место mv или tar вуду. Это сохраняет не только права собственности и разрешения, но и так называемые «флаги», такие как schg / uchg для / var / empty. Кроме того, я хочу запретить вам создавать жесткую ссылку / home / var -> / var, поскольку / home и / находятся в разных разделах. Обычно все можно сделать так:

  # mkdir /home/var
  # cd /home/var
  # dump 0af - /var | restore rf -
  # chflags -R nouchg,noschg /var
  # rm -r /var
  # ls -s /home/var /var

Конечно, для всего вышеперечисленного требуется однопользовательский режим или, если он недоступен, вам сначала нужно остановить все демоны, которые используют / var, например sendmail или mysql.

Другая хорошая практика - убирать не весь / var, а только директории, которые имеют тенденцию к росту. Это / var / db / mysql, / var / log и / var / mail. Я предпочитаю создавать для них отдельные дома - / usr / home / log, / usr / home / mysql и / usr / home / mail и так далее. Таким образом, каталоги связаны с их обычным расположением в / var для предотвращения конфигурирования программного обеспечения.

Почему не отображаются такие каталоги, как:

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

На моем более раннем выделенном сервере я мог просматривать все доступные размеры разделов, но здесь у меня были только / home и / ...

Потому что, вероятно, у вас есть только они.

Как увеличить размер раздела / var? Потому что за 2 часа работы этот раздел стал заполнен ...

Вы не можете, потому что у вас нет /var раздел.

Если вы добавите еще один диск, вы можете переместить все содержимое под /var на этот диск и смонтировать как /var.

Редактировать: Я только что видел это /home/ почти пусто. Итак, переместите все свои вещи под /var к /home/var и заменить /var по символической ссылке. Возможно, вам понадобится сделать это в однопользовательском режиме или из системы аварийного восстановления.

Я бы применил немного другой подход к тому, что предлагалось до сих пор, просто потому, что мне не нравятся символические ссылки внутри /var. Как и раньше, создайте новый каталог в /home для хранения данных, которые вы хотите переместить, и копирования данных.

Вы можете использовать nullfs точка монтирования для монтирования реального каталога (например, /home/var/db/mysql) в место, ожидаемое программой:

mount -t nullfs /home/var/db/mysql /var/db/mysql

В /etc/fstab, вам нужно это:

/home/var/db/mysql  /var/db/mysql  nullfs  rw   0    0

Обратите внимание, что для того, чтобы этот подход работал, вам нужно либо options NULLFS в вашем ядре, или вам нужен модуль ядра nullfs.

Что касается системы, она может получить доступ к содержимому /home/var/db/mysql через /var/db/mysql в точности как обычно. Этот подход также означает, что такие утилиты, как stat (1) и realpath (1), сообщают, что пути находятся под /var, а не под /home/var.