Bash Days | Linux | DevOps
🚀 Хотите узнать больше о мире DevOps, Linux и Bash? Подписывайтесь на мой авторский канал Bash Days! 📺 Здесь вы найдёте актуальные новости, советы и лучшие практики в области DevOps. Я буду делиться своими знаниями и опытом, чтобы помочь вам стать успешным специалистом. 🔧 На канале также будут обзоры полезных инструментов, инструкции и примеры скриптов на Bash, которые сделают вашу работу проще и эффективнее. 🚀 Не упустите возможность присоединиться и стать частью сообщества DevOps! 💪
что выбрал на майские?
Anonymous Poll
28% - шашлык
55% - день тюлень
35% - работу
Меня зовут Марсель Ибраев, и на своем канале я делюсь фишками, которые помогут вам начать путь в DevOps.
2 апреля стартовал курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответили на самые актуальные вопросы начинающих девопсеров:
1 неделя = 1 открытый модуль. В первом модуле разберем как быстро и эффективно освоить профессию с высокой зарплатой, с каких инструментов начинать, и какую роль в девопсе играют софт-скиллы.
erid: 2Vtzqv8A2ek
Яндекс приглашает начинающих DevOps-инженеров на летнюю стажировку в формате «Технолето»
Студентов ждет насыщенная и яркая программа стажировки. Участники смогут пообщаться с топовыми специалистами компании, познакомиться с передовыми технологиями Яндекса, а также зажечь под диджей-сеты и на Алгорейв-вечеринках.
Во время обучения начинающие DevOps-специалисты научатся развивать инфраструктуру и мониторинг компонентов сервиса, улучшать процессы разработок и CI/СD, разбираться в архитектуре высоконагруженных распределенных систем и многое другое. А если хочется погрузиться в другую сферу, то на стажировке есть возможность освоить бэкенд, фронтенд, машинное обучение, QA, DevOps и другие IT-направления.
Стажировка оплачивается, кроме того, студенты могут выбрать для себя удобный график обучения — в течение 3, 4 или 6 месяцев. По итогам у стажеров есть все шансы получить оффер в Яндексе. По статистике, больше половины стажеров переходят в штат компании.
Оставляй заявку на участие и проведи лето ярко.
Алиасы штука удобная, со временем они становятся зоной комфорта, экономят время, особенно на локальной машине. Но как использовать готовые алиасы в своих bash скриптах?
Сегодня про это и поговорим. Смотри, есть у тебя алиас в .bashrc:
alias glist="ls -la"
Тут понятно, вводим glist а оно по умолчанию интерпретируется как ls -la. А теперь напишем простой bash скрипт:
#!/bin/bash
alias
echo "hello bashdays"
glist
И вот незадача. Получаем ошибку: glist: command not found
Ну оно и ежу понятно. Алиасы тут никаким боком к скрипту не привязаны.
Команда alias по идее должна была вывести все алиасы, которые прописаны, но она этого не сделала.
И как быть?
Городить в самом скрипте всё необходимое? Ну можно и так, но есть способ изящнее.
Изменяем скрипт:
#!/bin/bash -i
alias
echo "hello bashdays"
glist
Добавился ключик -i, с помощью него мы запускаем оболочку bash в интерактивном режиме. Само собой подтягиваются всякие bashrc и т.п. как при обычно логине.
1. Выведется список всех алиасов
2. Выведется строка из echo
3. Отработает алиас glist == ls -la
Можно конечно еще и через
source
, shopt -s expand_aliases
и прочие велосипеды подобное сделать, но через ключик -i более нативнее что-ли получается.Если же нет возможности поправить скрипт, как вариант, прописываем в bashrc такую строчку:
function glist () { command ls -la "$@"; }; export -f glist
Теперь даже без ключа -i функция glist будет работать в любом скрипте без вмешательства в него.
Короче везде свои нюансы. Но вообще как совет — не нужно привязываться к алиасам, если нужно сделать ls -la, так и пиши в скрипте, нахер эти спагетти, оставь их для ансибла.
Чем меньше привязок, тем меньше багов и стабильнее твой скрипт. Пусть он будет самодостаточный и независимый от всякой хуйни. Изучай.
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Почему 99% девопсов жирные?
Ну ясно понятно, из-за стресса, а не из-за того, что много жрут и ведут сидячий образ жизни.
Далеко ходить не будем. Вчера мы с тобой тёрли за cruft, поэтому делюсь еще одной штукой, которую также применяю.
Она предназначена для проверки целостности файлов, которые установлены пакетным менеджером. Вроде хуйня, а НЕТ! Инструмент — мастхэв.
Из названия уже понятно, что проверка целостности пакетов будет проходить на основе контрольных хэш сумм.
Откуда берутся эталонные хэши?
При установке пакетов и т.п. все эталонные, контрольные суммы попадают в «базу данных», которая находится тут: /var/lib/dpkg/info
.
В ней содержатся файлы с данными, которые и использует debsums для проверки.
Например, nginx-common.md5sums
dba41b system/nginx.service
17d6d7 package-hooks/source_nginx.py
9e33ba nginx-common/NEWS.Debian.gz
6c278a nginx-common/README.Debian
Ну дак вот. Debsums либо идет сразу в коробке, либо ставится через пакетный менеджер.
У меня в Селектел на убунте 22 уже была предустановлена, хотя локально её не было. Имей это ввиду.
Запускаем так
debsums -a
В этом случае, будут проверяться все хэш суммы, всех файлов. Это дохуя долго, но иногда полезно если разбираешься с сервером, на который через php залили крипто-майнер или нечто подобное.
Если нужно проверить только измененные:
debsums -ac
Опять же очень полезно при миграциях с сервера на сервер.
А для проверки только конфигов:
debsums -ae
Например, я в душе не ебал что файл php.ini кто-то правил, а debsum мне это подсказал. И я не зафакапил.
После отработки команды, имеем список измененных файлов:
/etc/crontab
/sbin/start-stop-daemon
/etc/modprobe.d/blacklist.conf
/etc/nginx/sites-available/default
/etc/php/8.1/fpm/pool.d/www.conf
/etc/sysctl.conf
/etc/sudoers
/etc/pam.d/sudo
/etc/systemd/zram-generator.conf
Ну а дальше включаем в себе подозрительного аналитика и разбираемся с полученной информацией. Также можно быстро визуально понять, какой софт устанавливался и какими внешними пакетами напичкан сервер.
Указав ключ -x весь её высер можно сразу выгрузить в файл. В отчет попадут только измененные файлы.
Из минусов — пиздец долго всё ищет (при полной проверке). Запускаем и идем пить кофе/смотреть мультики. Но это приятное ожидание, плюсы покрывают минусы.
Рекомендую взять на вооружение, утилита довольно пиздатая и достойна твоего внимания.
Подобных утилит много, из тех что я знаю: AIDE, Tripwire, rkhunter, chkrootkit, ossec, Lynis. Присмотрись и к ним, возможно найдешь среди них что-то интересное под свои задачи.
Ну вот и всё. Пойдука я чайку хапну. Хорошего тебе дня!
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет, этот пост должен был выйти вчера, но тупоголовые боты видимо прислушались к моему совету и решили устроить себе выходной.
Если ты не уверен, что сегодня выходной, этот Bash скрипт тебе поможет:
if [[ $(date +%u) -gt 5 ]]; then
echo 'А вот и нет! У меня выходной!'
exit 0
fi
Вот прям сейчас возьми и встрой это во все свои поделки на проде. И ни один крон не заставит их работать по выходным.
С праздниками посложнее будет, но если добавить и их в логику, привязать например к производственному календарю, тогда тебя точно на ретроспективе похвалят и дадут
А если ты живешь в жопе мира, например в племенах Масаи и спишь под кустом, естественно скрипт нужно немного адаптировать. Ведь у тебя выходные дни будут выпадать на другие дни недели. Учти это!
Ну красота же! Прям рубрика «Вредные советы» получилась. Экспериментируй.
tags: #linux #bash
@ВАSНDАYS | BАSHDАYS.CОM