reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
• Энтузиаст опубликовал видеоинструкцию по замене операционной системы любого удаленного сервера Linux только с помощью SSH на NetBSD. Этот процесс занимает менее 10 минут, используя открытый скрипт проекта takeover.sh.
#NetBSD#SSH#Linux
Школа имени Д. И. Менделеева готовится к проведению ЕГЭ-2026 📝
Школа имени Д. И. Менделеева приступила к активной подготовке к проведению единого государственного экзамена в 2026 году.
Одним из важных этапов станет участие во Всероссийском тренировочном экзамене с применением технологии передачи полного комплекта экзаменационных материалов по сети «Интернет», печати и сканирования ЭМ в аудиториях ППЭ с использованием операционной системы Linux💻.
21 января сотрудники школы приняли участие в онлайн-совещании с Федеральным центром тестирования📡. В ходе встречи были подробно рассмотрены обязательные требования к работе по защищённым каналам связи, особенности установки и настройки программного комплекса АРМ ГИА-11 на базе Linux, порядок получения, расшифровки и загрузки экзаменационных материалов, а также необходимость заполнения не менее двух тренировочных комплектов бланков ответов в каждой аудитории для проверки всей технологической цепочки. Отдельное внимание было уделено организации круглосуточной технической поддержки с 22 по 28 января 2026 года⚙️.
Тренировочное мероприятие, запланированное на 28 января 2026 года, позволит оценить готовность пунктов проведения экзаменов к работе на отечественном программном обеспечении и станет ключевым этапом подготовки к использованию операционных систем на базе Linux при проведении ЕГЭ🔑.
Участие в подобных тренировках является важной частью подготовки к государственной итоговой аттестации и позволяет заранее выявить и устранить возможные технические сложности ✅.
В 2026 году школа имени Д. И. Менделеева впервые станет пунктом проведения единого государственного экзамена. Одними из ключевых направлений подготовки являются обучение сотрудников и организационно-техническая готовность процедуры проведения экзамена.
#ШколаМенделеева#ЕГЭ2026#ПодготовкаКЕГЭ#Образование#Экзамены#ЦифровыеТехнологии#Linux
#ДвижениеПервых
#ЛучшаяШколаМенделеева
👨💻 Metarget.
• Нашел крутой инструмент, который позволяет вам развернуть уязвимую версию Docker, Kubernetes и ядра Linux. Тулза будет очень полезна пентестерам, для получения практического опыта в данном направлении. Подробное описание проекта доступно по ссылке ниже:
➡️https://github.com/Metarget/metarget/tree/master
#Пентест#Linux#Kubernetes#Docker
📶 Создаём виртуальную сеть, как это делает Docker.
• Как известно, #Docker умеет создавать виртуальные сети для безопасного и удобного сетевого взаимодействия внутри контейнеров. В этой статье мы рассмотрим, как именно он это делает на примере базовых манипуляций с сетью в рамках одного хоста с операционной системой #Linux.
• По итогу мы получим:
- http-сервер, запущенный в изолированном сетевом пространстве;
- Доступ к этому серверу по порту 8000 из loopback (localhost) интерфейса хоста;
- Перенаправление пакетов от других машин по tcp порту 8000 в наш http-сервер.
➡️Читать статью [10 min].
• Дополнительный материал: в этой статье автор рассказывает о том, как работает сеть в контейнерах и разбирает следующие вопросы:
- Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельная сетевая среда?
- Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?
- Как выйти во внешний мир (например, в Интернет) изнутри контейнера?
- Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?
- Как реализовать публикацию портов, подобную Docker?
➡️Ссылка на статью [25 min].
#Сети#DevOps#Docker