Как скрипт может определить, доступна ли платформа LSF в среде?

У нас есть некоторые сценарии оболочки, которые в настоящее время используют платформу LSF для управления выполнением задания.

Эти сценарии в конечном итоге будут перенесены в среду, в которой используется другой планировщик заданий.

Во время фазы миграции было бы идеально иметь тот же график планирования поддержки скриптов в обеих средах, поэтому, если он обнаруживает, что среда LSF присутствует, она использует инструкции LSF, иначе она использует команды, относящиеся к другой среде.

Я подумал о нескольких возможных решениях:

  • Проверьте переменные среды LSF

    например $LSF_BINDIR , $LSF_LIBDIR , $LSF_SERVERDIR

     if [[ -n $LSF_BINDIR ]]; then # Yes LSF else # No LSF fi 
  • Проверьте наличие команд LSF

    например, which bsub , which bhosts , which bjobs

     if [[ -z $( which bsub 2>&1 | grep "/usr/bin/which" ) ]]; then # LSF present else # LSF absent fi 

Я не знаю, достаточны ли эти проверки или есть ли более эффективный (как и менее хакерский) более надежный метод обнаружения наличия платформы LSF в системе.

One Solution collect form web for “Как скрипт может определить, доступна ли платформа LSF в среде?”

Прошло несколько лет с тех пор, как я в последний раз использовал LSF, но первая команда, упомянутая в «Руководстве пользователя партии LSF» (версия 3.2), – это lsid , в котором будут отображаться имя кластера и имя главного хоста, как а также версию LSF, которая установлена.

Я считаю, что проверка этой команды, а также нескольких общедоступных пользовательских утилит, таких как bsub и bjobs будет хорошим способом обнаружения LSF. Я не знаю ни одного другого программного обеспечения для планирования, которое имеет это трио утилит (но я не эксперт).

Чтобы проверить, находится ли команда в текущем пути, не используйте. Вместо этого используйте command -v (см. « Почему бы не использовать», который «? Что использовать тогда? »):

 if (command -v lsid && command -v bsub && command -v bjobs) >/dev/null; then echo "LSF seems to be available" fi 
  • Не удается эхо или создать символическую ссылку на файл со специальными символами в имени внутри сценария bash
  • Как получить значение именованного параметра уже запущенного процесса в Linux?
  • Как я могу запустить программу с измененным argv с помощью загрузочной ящички busybox?
  • Помогите понять команду cut в скрипте
  • найти и удалить дубликаты в каталоге
  • альтернатива 'last`, показывающая логины только для текущего пользователя
  • Попытка выяснить скрипт Linux
  • Переменная в команде find задана новой переменной в bash
  • Невозможно разобрать вывод функции
  • Возникли проблемы с базовым, если это утверждение
  • Bash для замены двух шагов: cd ./some_dir, ls -al?
  • Linux и Unix - лучшая ОС в мире.