Как узнать, какая зона Solaris занимает сколько места на диске? - PullRequest
3 голосов
/ 23 февраля 2009

ЕСЛИ я использую команду df, я могу видеть только на сервере Solaris, сколько дискового пространства используется. Но я хочу знать, сколько дискового пространства занимает конкретная зона соляриса

Ответы [ 6 ]

4 голосов
/ 18 сентября 2012

Проблема, которую я обнаружил в этих решениях, заключается в том, что они не учитывают наследование каталогов. Да, вы узнаете, сколько «места» находится в определенной директории. Но если вы хотите узнать, сколько места занимает зона, вам нужно пойти другим путем. Сделать

zonecfg -z zonename info

где zonename - название зоны. И посмотрите на каждую строку «Наследовать-pkg-dir».

inherit-pkgdir-dir:
      dir: /lib
inherit-pkgdir-dir:
      dir: /sbin

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

du -sh /zonepath/zonename

По сути, вы должны учитывать только каталоги (исключая / proc и, возможно, / tmp), которые не перечислены ни в одной строке inherit-pkg-dir.

cd /zonepath/zonename/root

du -sh /bin /dev /etc /home /kernel opt /system /var etc....
2 голосов
/ 24 октября 2011

Да - определенно su, чтобы сделать это.

Мне удалось запустить: / usr / xpg4 / bin / du -sk -h -x / zonepath / zonename чтобы получить пространство, которое использовалось в корневом разделе UFS зоны.

Например, / usr / xpg4 / bin / du -sk -h -x / zonepath / zonename
вернул следующее: 3.5G / zonepath / zonename

Опция -x при оценке размеров файлов оценивает только те файлы, которые имеют то же устройство, что и файл, указанный в операнде файла.

Операнд -x работает только при вызове du с этим путем: / usr / xpg4 / bin / du

Это также помогло отобразить используемое пространство дисков, подключенных к zfs, в зоне! Мы подключили один zfs lun к пути / zoneepath / zonename / data и выполнили это, совпав с выводом «списка zfs» для файла данных:

# / usr / xpg4 / bin / du -sk -h -x / zonepath / zoneneame / data
11G / zonepath / zoneneame / data

Если вы запустите # / usr / xpg4 / bin / du -sk -h -x / zonepath / zoneneame
тогда вы должны получить общее количество использованного пространства в зоне, например:
53G / zonepath / zonename

Он не будет включать подключенные диски NFS, а также каталоги, владельцем которых не является root.

Надеюсь, это поможет!

2 голосов
/ 23 февраля 2009

попробуйте команду du

1 голос
/ 23 февраля 2009

Поскольку я попробовал и решение Джона, и решение Пьера-Люка, для меня работает:

  • список всех зон (из глобальной зоны)

tcsh>zoneadm list -civ
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 myZone1          running    /export/zones/myZone1          native   shared
   2 myZone2          running    /export/zones/myZone2          native   shared
  • du -sk как root
    (поскольку локальные зоны недоступны для чтения из глобальной зоны, мне пришлось du -sk их как root)

 tcsh>s du -sk /export/zones/myZone1  
 9930978 /export/zones/myZone1
0 голосов
/ 16 марта 2009

Если вы устанавливаете зону на томе zfs, вы можете использовать инструменты zfs («список zfs»), чтобы быстро увидеть, сколько места было использовано.

В противном случае вам придется использовать "du", как вы уже обнаружили (что будет намного медленнее).

0 голосов
/ 23 февраля 2009

В соответствии с Операционная система Solaris, управляющая ZFS в контейнерах Solaris 10 , следующая команда выдаст необходимую информацию.

zfs list 
...