IC не знает, если у вас есть эти диски, которые используются совместно другим хостом ESXi, очень часто SAN на бэкэнде и несколько хостов обращаются к одному устройству хранения. В этом случае нет способа узнать, какие хосты получают доступ к каким машинам, описанный вами сценарий имеет смысл, только если у вас есть один хост - что не является типичным сценарием для многих корпоративных клиентов VMware.
Используя RCLI или оболочку, вы можете перебрать все существующие машины, а затем сравнить это со списком того, что находится на диске. Однако если у вас есть общие диски между хостами, все становится намного сложнее, и вам нужно будет также перебирать устройства на каждой машине.
Обновление: Правильно, теперь это больше вопрос о скрипте / программировании;)
Начиная с документации RCLI Возможно, я бы сделал что-то вроде использования vmware-cmd -l
для вывода списка всех зарегистрированных машин на хосте. Затем с помощью vifs
загрузите файлы конфигурации, grep
через те, которые ищут упоминания о виртуальных дисках (.vmdk
) и сохраните все эти файлы в файле.
Вторая часть, будет писать сценарий для создания рекурсивного списка каталогов, снова используя vifs
, снова запуская grep
, чтобы включить только файлы .vmdk
и .vmx
. Теперь у вас есть два списка, перенаправьте их через sort
и затем diff
результаты, чтобы выяснить, какие файлы .vmx
не зарегистрированы на компьютере, а какие .vmdk
файлы не используются ни одной активной виртуальной машиной. И тогда у вас есть ваши кандидаты на удаление:)