Как оценить состояние OS X Server.app из сценария оболочки?

3

Мне нужно оценить, был ли установлен OS X Server.app и был ли он запущен или нет. Это мне нужно сделать из сценария оболочки. Я мог бы проверить существующие имена папок, но я ожидаю, что он не может по-настоящему убедиться, что Server.app установлен и запущен, чтобы я мог выполнить serveradminкоманду.
Кто-нибудь с предложением?

Это дополнительный вопрос к моему предыдущему вопросу: настройка сервера OS X из сценария .pkg postinstall

Иоахим Браттели
источник
1
У меня нет сервера OSX, но serverinfoможет помочь. И вы можете проверить на наличие serveradminи предположить «нет сервера», если он отсутствует.
холме
serverinfo -q --softwareПомогла проверка по результату бега . Спасибо за помощь @patrix
Йоахим Браттели

Ответы:

3

Это можно определить, выполнив следующую команду:

serverinfo --configured

Чтобы оценить результат выполнения команды в сценарии оболочки, используйте параметр -q и инкапсулируйте его в оператор if:

 if serverinfo -q --configured;
 then
    echo configured; 
 else
    echo not_configured;
 fi

Это serverinfoдает две опции, чтобы определить, установлен ли Server.app или настроен:

--software [PATH]
    Returns status 0 if the root volume has a server OS installed
    Use optional argument PATH to specify mountpoint of alternate volume
--configured [PATH]
    Returns status 0 if the server is configured
    Use optional argument PATH to specify mountpoint of alternate volume

Так что, если serveradmin --configuredкоманда «терпит неудачу», вы можете проверить, установлена ​​ли она:

 if serverinfo -q --configured;
 then
    echo configured; 
 else
    if serverinfo -q --software;
    then
       echo installed;
    else
       echo not_installed;
    fi
 fi
Grg
источник
Спасибо @grgarside На основе этой команды я проверю, может ли это быть решением в моем сценарии оболочки: OUTPUT=$(serverinfo --software) $if [ $OUTPUT = "This system has server software installed." ]; then cp product.conf /Library/Server/Web/Config/apache2/other/ #stop and start the websites service serveradmin stop web serveradmin start web fi
Иоахим Браттели,
1
@JoachimBratteli Нет необходимости проверять вывод строки - вы можете использовать опцию -q, напримерif serverinfo -q --software; then echo enabled; else echo disabled; fi
grg
С вашими замечаниями мой скрипт был протестирован и работает как для Yosemite без установленного Server.app, так и для El Capitan, на котором установлен Server.app. Спасибо @grgarside
Иоахим Браттели