lsblk
имеет опцию -e
для исключения устройств по старшим номерам устройств.
Устройства drbd в выводе lsblk
выше имеют старший номер 147, поэтому они будут исключены из списка:
lsblk -a -e 147
Это не приведет к удалению каких-либо узлов устройств drbd из вашей системы и никакому взаимодействию со службой DRBD, оно просто исключит устройства drbd из вывода lsblk
.
В вашем скрипте просто сделайте его переменной с быстрой проверкой работоспособности:
pyfile="file.py"
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar "${pyfile?python script not specified}"
Конструкция ${var?message}
выдаст ошибку и отобразит message
, если переменная var
не определена или пуста.
Вы также можете указать значение по умолчанию, используя ${var-defaultvalue}
.
Вы также можете сделать это функцией для более простого вызова:
runjob() {
sudo PYSPARK_DRIVER_PYTHON=/bin/python2.7 PYSPARK_PYTHON=/bin/python2.7 SPARK_CONF_DIR=/configuration/spark2 /spark2.1/bin/spark-submit --driver-memory 2g --executor-memory 4g --num-executors 100 --jars /lib/json-serde-1.3.7-jar-with-dependencies.jar "${1?python script not specified}"
}
runjob "/path/to/file.py"
runjob "/path/to/some/other/file.py"