☝️🕒 Увеличение времени сессии SSH
Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась.
На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.
#гайд
Бывает, что выполнение удаленно запущенной команды может затянуться, а необходимо дождаться ее выполнения (кстати, в этом случае весьма полезным может стать использование screen), или пришлось отвлечься, а сессия SSH в это время отвалилась.
На сервере в конфигурационном файле /etc/ssh/sshd_config прописываем:
TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60
TCPKeepAlive — установлен в «yes», значит сервер будет периодически пинговать клиента, проверяя жив ли он.
ClientAliveInterval — задает интервал пинга для проверки состояния клиента (в секундах). Параметр работает только для протокола версии 2 (Protocol 2).
ClientAliveCountMax — количество пингов клиента.
Таким образом в примере таймаут сессии будет равен 60*300/60 = 300 минут = 5 часов.
После изменения настроек не забудьте перезапустить сервис ssh.
#гайд
❤17👍9
#!/bin/bashДля получения имени функции из самой функции, можно воспользоваться переменной ${FUNCNAME[*]}.
deploy() {
# здесь хотим получить "deploy"
}
Элемент с индексом 0 это имя любой выполняемой функции в данный момент.Элемент с самым большим индексом будет называться main.
deploy() {
echo ${FUNCNAME[0]}
}
Переменная FUNCNAME существует только во время выполнения скрипта. Если самостоятельно задать переменную FUNCNAME, это ничего не даст и все равно выведется эталонное имя функции.
При обращении к массиву без индекса, будет возвращен первый элемент массива текущий функции. Но так же будет содержать все остальные функции в стеке вызова.
Например:
exp1() {
echo ${FUNCNAME}
}
exp2() {
echo ${FUNCNAME[*]}
}
Не обязательно указывать индекс, все будет корректно работать и так. Это больше как правила хорошего тона. Как точка с запятой в конце строки, которая не влияет на функционал и никак не интерпретируется.
В zsh это называется funcstack, это тот же массив всех функций скрипта.
deploy() {
echo $funcstack[1]
}
Еще переменная FUNCNAME используется с BASH_LINENO и BASH_SOURCE, об этом можно почитать в официальной документации.
BASH_SOURCE - переменная, содержит путь к исходному файлу оболочки, полезна при отладке и анализе ошибок.
BASH_LINENO - переменная, содержит номер строки на которой произошла ошибка в текущем скрипте.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍9🌚1
🧑🎓✍️ Certified Kubernetes Security Specialist — мой опыт сдачи экзамена
Автор материала успешно сдал экзамен на этот сертификат. Его путь был не совсем гладким, и в статье он расскажет все подробности.
CKS самый сложный в линейке практических экзаменов по Kubernetes от CNCF. К сдаче допускаются кандидаты, уже подтвердившие себя в экзамене Certified Kubernetes Administrator.
Основой подготовки кроме доки Kubernetes стали самые популярные по теме ресурсы: https://kodekloud.com/, а также https://killer.sh и https://killercoda.com/.
Также было несколько репозиториев с github, информация в них большей частью устарела, т.к. и версия Kubernetes, и версия экзамена не стоят на месте.
Продолжение истории ищите здесь
#гайд
Автор материала успешно сдал экзамен на этот сертификат. Его путь был не совсем гладким, и в статье он расскажет все подробности.
CKS самый сложный в линейке практических экзаменов по Kubernetes от CNCF. К сдаче допускаются кандидаты, уже подтвердившие себя в экзамене Certified Kubernetes Administrator.
Основой подготовки кроме доки Kubernetes стали самые популярные по теме ресурсы: https://kodekloud.com/, а также https://killer.sh и https://killercoda.com/.
Также было несколько репозиториев с github, информация в них большей частью устарела, т.к. и версия Kubernetes, и версия экзамена не стоят на месте.
Продолжение истории ищите здесь
#гайд
👍6🔥2
🤔🎯 Топ-10 распространенных проблем с Dockerfile linting
Как залинтить Dockerfile
Можно использовать hadolint. Чтобы залинтить Dockerfile on-demand, следует передать флаг --lint во время сборки, который будет запущен перед сборкой.
Еще вариант — запустить hadolint локально или использовать hadolint Dockerfile linter UI. Чтобы запустить hadolint локально, вы можете либо установить его через brew, либо использовать образ Docker и вставить в него свой Dockerfile.
После того, как разобрались с линтерами переходим к ошибкам, которые найдете тут
#гайд
Как залинтить Dockerfile
Можно использовать hadolint. Чтобы залинтить Dockerfile on-demand, следует передать флаг --lint во время сборки, который будет запущен перед сборкой.
Еще вариант — запустить hadolint локально или использовать hadolint Dockerfile linter UI. Чтобы запустить hadolint локально, вы можете либо установить его через brew, либо использовать образ Docker и вставить в него свой Dockerfile.
После того, как разобрались с линтерами переходим к ошибкам, которые найдете тут
#гайд
🔥3👍1
🤔 Очередной #дайджест статей и инструментов по DevOps
🛟 Gitea & Act Runner: First touch — в Gitea появился собственный Github-подобный CI/CD
🛟 AWS Weekly Roundup — re:Post Selections, SNS и SQS FIFO улучшение, multi-VPC ENI
🛟 Fact-Gathering с Event-Driven Ansible для Microsoft Windows ITSM — использование Event-Driven Ansible для обеспечения сбора фактов из событий
🛟 Что такое RUP — что такое RUP, зачем нужен, принципы, структура, преимущества и недостатки
🛟 Отправляем уведомления в определенный топик в чате Telegram — как настроить уведомления в приложении на Python или в Alertmanager, чтобы сообщения приходили в определенный Telegram топик
🛟 Gitea & Act Runner: First touch — в Gitea появился собственный Github-подобный CI/CD
🛟 AWS Weekly Roundup — re:Post Selections, SNS и SQS FIFO улучшение, multi-VPC ENI
🛟 Fact-Gathering с Event-Driven Ansible для Microsoft Windows ITSM — использование Event-Driven Ansible для обеспечения сбора фактов из событий
🛟 Что такое RUP — что такое RUP, зачем нужен, принципы, структура, преимущества и недостатки
🛟 Отправляем уведомления в определенный топик в чате Telegram — как настроить уведомления в приложении на Python или в Alertmanager, чтобы сообщения приходили в определенный Telegram топик
❤🔥17👍12👏2
#вопросы_с_собеседования
Как определить, на каком физическом жёстком диске находится раздел с файловой системой? Как можно идентифицировать этот носитель без выключения сервера?
Посмотреть название блочного устройства нужного можно например с помощью команды:
mount | grep " $(stat -c%m /home) " | awk '{print $1}'
А дальше на основе полученной информации можно выудить фирму, серийный номер и размер диска.
smartctl -a /dev/sda | grep -e «Serial Number» -e «Device Model» -e «Model Family» -e «User Capacity»
Как определить, на каком физическом жёстком диске находится раздел с файловой системой? Как можно идентифицировать этот носитель без выключения сервера?
mount | grep " $(stat -c%m /home) " | awk '{print $1}'
А дальше на основе полученной информации можно выудить фирму, серийный номер и размер диска.
smartctl -a /dev/sda | grep -e «Serial Number» -e «Device Model» -e «Model Family» -e «User Capacity»
👍11❤1🔥1
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
❤4👍1
🤔😱 Что делать с постепенно растущей нагрузкой при быстром масштабировании? А с ее резким ростом?
Мероприятие состоится 23 ноября в 16:00.
В программе
✏️ Что может пойти не так на начальном этапе масштабирования? В чем плюсы и минусы традиционных подходов к кэшированию?
✏️ Что делать с постепенно растущей нагрузкой? А с резким ростом нагрузки? Как обеспечить доступность и отказоустойчивость сервиса?
✏️ Как избежать чрезмерного разрастания технологического стека при выпуске нового функционала?
✏️ Как на разных этапах масштабирования может помочь Tarantool? И как правильно его приготовить, чтобы добиться максимальной производительности и надежности?
Вебинар будет интересен IT-специалистам в области высоких нагрузок, архитекторам ПО, всем, кому предстоит масштабирование, а также тем, кто любит учиться на чужих ошибках и узнавать про факапы других людей 😉
Регистрация тут
#мероприятие
Мероприятие состоится 23 ноября в 16:00.
В программе
✏️ Что может пойти не так на начальном этапе масштабирования? В чем плюсы и минусы традиционных подходов к кэшированию?
✏️ Что делать с постепенно растущей нагрузкой? А с резким ростом нагрузки? Как обеспечить доступность и отказоустойчивость сервиса?
✏️ Как избежать чрезмерного разрастания технологического стека при выпуске нового функционала?
✏️ Как на разных этапах масштабирования может помочь Tarantool? И как правильно его приготовить, чтобы добиться максимальной производительности и надежности?
Вебинар будет интересен IT-специалистам в области высоких нагрузок, архитекторам ПО, всем, кому предстоит масштабирование, а также тем, кто любит учиться на чужих ошибках и узнавать про факапы других людей 😉
Регистрация тут
#мероприятие
👍4❤1
Друзья, мы хотим делать для вас самый лучший контент — и для этого нам нужно узнать вас получше.
Пожалуйста, ответьте на несколько вопросов — это не займет у вас много времени, но поможет нам делать более полезные и интересные посты!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Ваш возраст:
Anonymous Poll
2%
Менее 18 лет
16%
18-24 года
40%
25-34 года
32%
35-44 года
7%
45-54 года
1%
55-64 года
2%
65 лет и старше
В каком городе вы живете последние 3 месяца?
Anonymous Poll
18%
Москва
9%
Санкт-Петербург
3%
Краснодар
1%
Нижний Новгород
4%
Минск
3%
Екатеринбург
2%
Киев
1%
Львов
2%
Алматы
55%
Другое
В какой стране вы живете последние 3 месяца?
Anonymous Poll
62%
Россия
7%
Украина
5%
Беларусь
3%
Казахстан
2%
Польша
1%
Кыргызстан
2%
Узбекистан
1%
США
1%
Грузия
15%
Другое
Ваш доход в месяц после налогов:
Anonymous Poll
9%
до $500
9%
от $501 до $800
12%
от $801 до $1100
22%
от $1101 до $2000
18%
от $2001 до $3000
14%
от $3001 до $4000
5%
от $4001 до $5001
3%
от $5001 до $6000
7%
от $6001
Какой у вас коммерческий опыт работы в IT?
Anonymous Poll
48%
от 6 лет
19%
от 3 до 6 лет включительно
20%
от 1 до 3 лет включительно
5%
до 1 года
8%
нет опыта
На каком языке программирования вы пишете больше всего?
Anonymous Poll
41%
Python
11%
Go
7%
Java
3%
JavaScript
1%
TypeScript
3%
C/C++
6%
С#
0%
Kotlin/Swift
3%
PHP
23%
Другой
Какая ваша специализация в IT?
Anonymous Poll
15%
Backend
1%
Frontend
7%
Fullstack
0%
Mobile
2%
Desktop
58%
DevOps/Sysadmin
2%
QA
1%
Data Science
4%
Кибербезопасность
10%
Другое
Какой грейд у вас на работе?
Anonymous Poll
4%
Стажер
13%
Джуниор
35%
Миддл
19%
Сеньор
11%
Тимлид
5%
Архитектор
4%
СТО
8%
я не в IT