API гостевых инструментов VMWare (vixtools) не находит каталог system /tmp
Я работаю над классом Java, который обращается к виртуальным машинам VMWare в VCenter с помощью API Java.
Java API позволяет нам подключаться к VCenter, получать доступ к гостевой виртуальной машине (CentOS7) и просматривать файлы в каталогах без проблем, за исключением каталога /tmp.
для справки: Doc: GuestFileManager
// filePathToCheck = "/tmp/some-file-to-find.txt
ManagedObjectReference fileManager = ...; // GuestFileManager
ManagedObjectReference vmGuest = ...; // VirtualMachine
String fileToCheckName = FilenameUtils.getName(filePathToCheck); // -> some-file-to-find.txt
String guestDirectory = filePathToCheck.replace(fileToCheckName,""); // -> /tmp/
guestFiles = vimPort.listFilesInGuest(fileManager, vmGuest, auth, guestDirectory, null, null, null);
Я использую GuestFileManager.listFilesInGuest() и обнаружил, что с любым каталогом, кроме /tmp, я могу перечислить файлы в каталоге точно так, как они появляются в сеансе ssh.
Когда listFilesInGuest () просматривает каталог "/tmp", я получаю список:
.
..
vmware-root (directory)
хотя моя сессия SSH показывает:
.
..
finishedinstall
.font-unix
.ICE-unix
systemd-private-f2b5415058d14dbfa4306235d53fed88-vmtoolsd.service-QN0Muw
.Test-unix
.X11-unix
.XIM-unix
Я сделал поиск на vmware-root, и он обнаружился в
/tmp/systemd-private-f2b5415058d14dbfa4306235d53fed88-vmtoolsd.service-QN0Muw/tmp/vmware-root
навигация в эту папку показала файлы, найденные в listFilesInGuest():
.
..
vmware-root
Это было бы хорошо, если бы мы работали в вакууме, но программе нужно будет читать, изменять или выполнять файлы в каталоге temp из других программ установки и интерфейсов программы, которые используют каталог "/tmp", а не скрытое местоположение VMWare.
Мне не удалось найти какую-либо документацию о каком-либо способе переконфигурирования VMWare Tools или способе доступа к каталогу /tmp с помощью API, и я надеюсь, что кто-то в SO встретится и найдет победный путь для этой функции VMWare.
РЕДАКТИРОВАТЬ: При дальнейшем тестировании я обнаружил, что этот "специальный" каталог tmp происходит только в posix, API-интерфейс VMWareTools в Windows перемещается, как я и ожидал во всех ОС.
1 ответ
Попробуйте отключить частный каталог tmp. Там должен быть какой-то файл настроек для службы vmtoolsd. Например: apache
Как оказалось (см. Комментарии), такую настройку можно найти в: /usr/lib/systemd/system/vmtoolsd.service