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, который рассчитан на изучение в течении месяца. Включает в себя практические задания, теоретический материал и множество дополнительный ссылок на различные ресурсы в качестве дополнения.
• Начинающим будет хорошей тренировкой, а опытные специалисты могут проверить - хорошо ли они помнят аспекты работы с Linux. Единственный минус - курс написан на английском языке. Если у вас с этим трудности, то воспользуйтесь chatgpt и deepl.
➡️https://linuxupskillchallenge.org
➡️https://github.com/livialima/linuxupskillchallenge
➡️https://theleo.zone/posts/linux-upskill/
#Курс#Linux
• Администрирование инфраструктуры на GNU/Linux — бесплатный курс, где мы изучим множество тем, от поднятия инфрастуктуры с нуля до настройки различных отказоустойчивых сетевых сервисов. Данный курс является продолжением курса «Основы GNU/Linux» и требует понимания многих тем, разобранных там. Содержимое курса следующее:
➡Ссылки;
➡Команды;
➡Как устроена IT инфраструктура;
➡Подготовка лабораторной;
➡Деление на VLAN-ы;
➡Объединение портов;
➡Деление на подсети;
➡Как попасть в сеть через SSH;
➡Деление на зоны;
➡Политики Firewall;
➡Плавающий IP;
➡DHCP сервер;
➡Основы DNS.
#Курс#Linux
👩💻 Бесплатный курс: Linux CLI.
• Linux CLI, или умение пользоваться терминалом - жизненно необходимый навык для каждого IT-специалиста (даже если вы работаете на Windows и используете только графическую оболочку). На данном курсе Вы изучите материал, который полностью покроет ваши нужды как пользователя/разработчика/QA.
• Курс именно для начинающих (для тех, кто ранее не работал с терминалом и не знает что это такое). Тут не рассматривается сам Linux, а потому, если вы хотите изучить нечто большее чем исключительно базовое использование командного интерфейса - данный курс не подойдёт.
• На курсе вы получите теорию в виде текста/изображений/примеров, а отработать её на практике вы сможете у себя локально на компьютере и ответить на вопросы по теме прямо в модулях курса.
➡️https://stepik.org/course/124646/promo
#Курс#Linux
🎉Rust теперь официально в Linux!
Android ведь на ядре Linux, которое пишут на C/C++. Эти языки сложные — баги сами лезут, потому что средний скилл разработчика уменьшается 🥲. А Rust упрощает жизнь и делает код безопаснее.
Надеюсь, ядро от этого выиграет. Хотя знаю: староверы будут стоять на C/C++, а новички — мечтать о доработке ядра через AI 😏
🔗 Источник тут
#Linux#Rust
• Нашел интересный проект на GitHub, который называется whatmade. Суть в том, что с помощью этого решения мы можем понять, каким процессом создан тот или иной файл в отслеживаемых директориях Linux.
• Исходный код whatmade написан на C++ и опубликован на GitHub под лицензией GNU General Public License v3.0. Предполагается, что такой проект поможет пользователям в дальнейшем определить происхождение файлов со странными названиями.
• Пользователям среды рабочего стола MATE предоставляется расширение для файлового менеджера Caja, выводящее информацию о процессе, создавшем указанный файл.
➡️https://github.com/ANGulchenko/whatmade
#Linux#Tools
👩💻 Софт для VDS-сервера, на который стоит обратить внимание новичкам.
• Если вы арендовали свой первый VDS-сервер и не знаете, с чего начать, это нормально — поначалу всё может казаться сложным: терминал, настройки, безопасность… В этой статье собран хороший список утилит, которые помогут осуществить настройку сервера под ваши задачи и потребности, повысят удобство использования сервера и защитят его от потенциальных угроз:
➡️https://habr.com/ru/post/902596
#Tools#Linux
⚙️ Linux Crisis Tools
• В одном из блогов заметил полезную статью, которая содержит в себе определенный набор необходимых инструментов, когда инцидент на сервере уже случился. Автор в своей статье рекомендует установить их заранее =))
➡️https://www.brendangregg.com/blog/2024-03-24/linux-crisis-tools.html
#Linux#Tools