Забавное ироничное интервью с энтузиастом vim, которое пользователи vim могут принять за чистую монету. Если не примут, то могут, наверное, обидеться. Но ярые фанаты vim реально похожи на этого парня:
▶️ Interview with a VIM Enthusiast
Мне ютуб его в предложку закинул, я посмотрел. В рунете не видел упоминания этого видео, хотя оно неплохо сделано. Решил перевести его. Если английский на слух не воспринимаете, смотреть можно с субтитрами, либо в переводе яндекс браузера. Он неплохо перевёл, контекст не теряется.
Ролик был снят как пародия на видео:
▶️ Vim Will Actually Change Your Life
Парень реально рассказывает, как Vim меняет жизнь и навыки работы за компом.
Я сделал сравнение vim и ide. Знаешь ли ты, насколько быстрее запускается vim? На 4,3 секунды. 4,3 секунды я экономлю каждый день. Все эти месяцы обучения того стоили.
Либо ты примешь таблетку vim, либо я не буду с тобой разговаривать. По-моему, vim - лучший редактор на свете. Ты согласен со мной? Какая эффективность!!! В нём всё делается быстро. Супер мощь набора текста. Сделай свою жизнь эффективнее 10-ти пальцевым методом набора текста. Всем нужно научиться работать с vim.
Школа? Какая школа? Всем следует изучать vim, как это делал я, а не ходить в школу. Через vim и его набор команд вы изучите алфавит, научитесь управлять текстом. Увеличится продуктивность в вашей жизни.
Тебе нужен vim, чтобы стать разработчиком или хакером. Не очень люблю этот термин. Ну какой я хакер? Просто сижу и смотрю целый день в окно вима. А зачем вам карьера, если у вас есть vim? Он и есть ваша карьера. Великолепная скорость с помощью горячих клавиш. Больше никакой мышки, только клавиатура. Ваши руки всегда на клавиатуре, они приклеены к ней.
Vim всегда с тобой. Его невозможно удалить. У меня нет графического окружения на компе, только vim. И это дорожка в один конец. На серверах то же самое: insert mode, visual mode, j, o, m, q, jq (*команды мог напутать, сам vim не пользуюсь*). И это круто.
Позвольте мне поделиться с вами небольшим набором команд vim, которые вам обязательно нужно изучить. Они позволят вам проводить больше времени в нём. Хотя их изучение и займёт примерно год, но оно того стоит.
Ну и т.д. Устал переводить 😊 На слух это довольно сложно. Ещё немного отдельных перлов:
Я не рекомендую кому-то использовать vim, я настаиваю на этом.
Vim становится продолжением человеческого мозга.
Использовать компьютер и не пользоваться vim, это как ездить на машине без машины.
Пользуетесь VIM? Я - нет.
#юмор
▶️ Interview with a VIM Enthusiast
Мне ютуб его в предложку закинул, я посмотрел. В рунете не видел упоминания этого видео, хотя оно неплохо сделано. Решил перевести его. Если английский на слух не воспринимаете, смотреть можно с субтитрами, либо в переводе яндекс браузера. Он неплохо перевёл, контекст не теряется.
Ролик был снят как пародия на видео:
▶️ Vim Will Actually Change Your Life
Парень реально рассказывает, как Vim меняет жизнь и навыки работы за компом.
Я сделал сравнение vim и ide. Знаешь ли ты, насколько быстрее запускается vim? На 4,3 секунды. 4,3 секунды я экономлю каждый день. Все эти месяцы обучения того стоили.
Либо ты примешь таблетку vim, либо я не буду с тобой разговаривать. По-моему, vim - лучший редактор на свете. Ты согласен со мной? Какая эффективность!!! В нём всё делается быстро. Супер мощь набора текста. Сделай свою жизнь эффективнее 10-ти пальцевым методом набора текста. Всем нужно научиться работать с vim.
Школа? Какая школа? Всем следует изучать vim, как это делал я, а не ходить в школу. Через vim и его набор команд вы изучите алфавит, научитесь управлять текстом. Увеличится продуктивность в вашей жизни.
Тебе нужен vim, чтобы стать разработчиком или хакером. Не очень люблю этот термин. Ну какой я хакер? Просто сижу и смотрю целый день в окно вима. А зачем вам карьера, если у вас есть vim? Он и есть ваша карьера. Великолепная скорость с помощью горячих клавиш. Больше никакой мышки, только клавиатура. Ваши руки всегда на клавиатуре, они приклеены к ней.
Vim всегда с тобой. Его невозможно удалить. У меня нет графического окружения на компе, только vim. И это дорожка в один конец. На серверах то же самое: insert mode, visual mode, j, o, m, q, jq (*команды мог напутать, сам vim не пользуюсь*). И это круто.
Позвольте мне поделиться с вами небольшим набором команд vim, которые вам обязательно нужно изучить. Они позволят вам проводить больше времени в нём. Хотя их изучение и займёт примерно год, но оно того стоит.
Ну и т.д. Устал переводить 😊 На слух это довольно сложно. Ещё немного отдельных перлов:
Я не рекомендую кому-то использовать vim, я настаиваю на этом.
Vim становится продолжением человеческого мозга.
Использовать компьютер и не пользоваться vim, это как ездить на машине без машины.
Пользуетесь VIM? Я - нет.
#юмор
YouTube
Interview with a VIM Enthusiast
Merch: https://posix.store
VIM Editor
!WARNING: EPILEPSY WARNING for 4:20!
Interview with a VIM Enthusiast with Veyron Mustan - aired on © The VIM.
Inspiration++:
https://www.youtube.com/watch?v=ST7vnfKjfvY
Programmer humor
Software humor
Software tools…
VIM Editor
!WARNING: EPILEPSY WARNING for 4:20!
Interview with a VIM Enthusiast with Veyron Mustan - aired on © The VIM.
Inspiration++:
https://www.youtube.com/watch?v=ST7vnfKjfvY
Programmer humor
Software humor
Software tools…
👍61👎7
Очередная тема выходного дня. На этот раз — дети. Я долго не решался об этом писать, потому что тема личная, очень субъективная. Неделю собирал и структурировал мысли на этот счёт. Надо всё уместить в 4000 символов.
Начну с того, что меня реально беспокоит и печалит. Много взрослых людей сейчас без детей. Вижу их среди моих одноклассников, одногруппников, коллег. Людям уже 30-35+, а у них нет детей. Мне немного жаль их, даже если это осознанный выбор. Они пропускают мимо себя одну из самых ярких граней жизни.
Дети в первую очередь — безграничное, безусловное счастье и радость. Как бы трудно тебе ни было в моральном и финансовом плане. Природа награждает тебя за то, что ты действуешь в русле её замысла, чувством радости, удовлетворения, счастья. После рождения детей становятся понятны строки из песни Я Люблю Тебя Жизнь:
И вершина любви -
Это чудо великое, дети!
Вновь мы с ними пройдем
Детство, юность, вокзалы, причалы,
Будут внуки, потом
Всё опять повторится сначала.
Песня великолепная, мировоззренчески ёмкая, как никакая другая. Люблю её в исполнении Погудина Олега. Рекомендую 👍
Я точно помню момент, когда понял, что хочу семью и детей. И сразу начал действовать. Становясь родителем, отпадает масса вопросов, метаний, поисков смысла. Ты как будто локомотив, которого поставили на рельсы. Временно становится неактуальным вопрос о смысле жизни. Появляется осмысленность, и ты понимаешь, зачем живёшь, чего хочешь, куда стремишься.
Дети — естественный и необходимый этап в формировании мужчины. Он принимает на себя долгосрочную ответственность за полностью зависимых от него людей. Это огромный труд и в первую очередь в осознании того, что результат семейной жизни и жизни детей это полностью твоя ответственность. И если что-то не получилось с супругой, с воспитанием детей, то это твоя вина. Сейчас на мужчин давят со всех сторон, делая подобную ответственность трудноподъёмной. Многие не выдерживают, обвиняя жену, государство, общество в том, что у них что-то не получилось. Нужно всё это понимать, работать над собой и действовать в соответствии с внешними условиями, даже если они враждебны к твоим мужским проявлениям.
Мы все потомки людей, у которых было много детей. Другие социумы не выжили в конкурентной борьбе и уступили место самым плодовитым. Многодетность для нас — нормальное состояние, закреплённое генетически. И это на самом деле так. Сужу по своему опыту, так как я многодетный. Чем больше становилось детей, тем более счастливым я себя ощущал. И секрет этого прост.
Дети даже от одних родителей рождаются сильно разные. И каждый наполняет родителей чем-то своим. Покажу на своём примере. Старший сын очень любит порассуждать, поговорить, пофилософствовать. Он всё детство заваливает нас бесконечными вопросами обо всём. При этом почти равнодушен к моим делам, любит проводить время один. Дочка, как настоящая девочка и будущая женщина, очень нежна и ласкова. Она заботится и беспокоится обо мне, обнимает и целует, называя любимым папулей, помогает и жалеет, если видит, что мне плохо. Младший сын сильно похож на меня внешне. Ходит всюду хвостиком, встречает с работы и не отпускает. Первый несётся с инструментами, если надо что-то починить. Сидит у меня на коленях, когда я работаю за компьютером. Ему просто в кайф быть рядом со мной, чтобы я ни делал.
Дети позволяют прочувствовать в сознательном возрасте безусловную любовь, которая наполняет тебя счастьем. Она не похожа на любовь женщины. Дети любят тебя просто за то, что ты есть, какой бы ты ни был. Разумеется, это можно растерять, но в базе тебе это даётся безусловно, а дальше зависит от тебя, как ты этим сокровищем распорядишься.
Если у вас нет детей, я непременно желаю вам их захотеть и реализовать своё желание. Считаю, что лучше испытать на себе отцовство, чем потом на закате жизни жалеть о том, что не решился. А если у вас один-два ребёнка, рекомендую подумать о расширении семьи. Новые дети принесут ещё больше счастья в ваш дом.
#мысли
Начну с того, что меня реально беспокоит и печалит. Много взрослых людей сейчас без детей. Вижу их среди моих одноклассников, одногруппников, коллег. Людям уже 30-35+, а у них нет детей. Мне немного жаль их, даже если это осознанный выбор. Они пропускают мимо себя одну из самых ярких граней жизни.
Дети в первую очередь — безграничное, безусловное счастье и радость. Как бы трудно тебе ни было в моральном и финансовом плане. Природа награждает тебя за то, что ты действуешь в русле её замысла, чувством радости, удовлетворения, счастья. После рождения детей становятся понятны строки из песни Я Люблю Тебя Жизнь:
И вершина любви -
Это чудо великое, дети!
Вновь мы с ними пройдем
Детство, юность, вокзалы, причалы,
Будут внуки, потом
Всё опять повторится сначала.
Песня великолепная, мировоззренчески ёмкая, как никакая другая. Люблю её в исполнении Погудина Олега. Рекомендую 👍
Я точно помню момент, когда понял, что хочу семью и детей. И сразу начал действовать. Становясь родителем, отпадает масса вопросов, метаний, поисков смысла. Ты как будто локомотив, которого поставили на рельсы. Временно становится неактуальным вопрос о смысле жизни. Появляется осмысленность, и ты понимаешь, зачем живёшь, чего хочешь, куда стремишься.
Дети — естественный и необходимый этап в формировании мужчины. Он принимает на себя долгосрочную ответственность за полностью зависимых от него людей. Это огромный труд и в первую очередь в осознании того, что результат семейной жизни и жизни детей это полностью твоя ответственность. И если что-то не получилось с супругой, с воспитанием детей, то это твоя вина. Сейчас на мужчин давят со всех сторон, делая подобную ответственность трудноподъёмной. Многие не выдерживают, обвиняя жену, государство, общество в том, что у них что-то не получилось. Нужно всё это понимать, работать над собой и действовать в соответствии с внешними условиями, даже если они враждебны к твоим мужским проявлениям.
Мы все потомки людей, у которых было много детей. Другие социумы не выжили в конкурентной борьбе и уступили место самым плодовитым. Многодетность для нас — нормальное состояние, закреплённое генетически. И это на самом деле так. Сужу по своему опыту, так как я многодетный. Чем больше становилось детей, тем более счастливым я себя ощущал. И секрет этого прост.
Дети даже от одних родителей рождаются сильно разные. И каждый наполняет родителей чем-то своим. Покажу на своём примере. Старший сын очень любит порассуждать, поговорить, пофилософствовать. Он всё детство заваливает нас бесконечными вопросами обо всём. При этом почти равнодушен к моим делам, любит проводить время один. Дочка, как настоящая девочка и будущая женщина, очень нежна и ласкова. Она заботится и беспокоится обо мне, обнимает и целует, называя любимым папулей, помогает и жалеет, если видит, что мне плохо. Младший сын сильно похож на меня внешне. Ходит всюду хвостиком, встречает с работы и не отпускает. Первый несётся с инструментами, если надо что-то починить. Сидит у меня на коленях, когда я работаю за компьютером. Ему просто в кайф быть рядом со мной, чтобы я ни делал.
Дети позволяют прочувствовать в сознательном возрасте безусловную любовь, которая наполняет тебя счастьем. Она не похожа на любовь женщины. Дети любят тебя просто за то, что ты есть, какой бы ты ни был. Разумеется, это можно растерять, но в базе тебе это даётся безусловно, а дальше зависит от тебя, как ты этим сокровищем распорядишься.
Если у вас нет детей, я непременно желаю вам их захотеть и реализовать своё желание. Считаю, что лучше испытать на себе отцовство, чем потом на закате жизни жалеть о том, что не решился. А если у вас один-два ребёнка, рекомендую подумать о расширении семьи. Новые дети принесут ещё больше счастья в ваш дом.
#мысли
👍480👎112
На неделе посмотрел несколько интересных роликов на youtube. Каждый по отдельности не тянет на публикацию, поэтому решил их объединить в единый пост.
Денис Астахов, автор канала ADV-IT рассказал о том, где и как он рисует диаграммы. Всегда интересно посмотреть опыт специалиста по горячей теме. Впервые увидел использование Lucidchart.
▶️ АРХИТЕКТУРНЫЕ ДИАГРАММЫ - ГДЕ и КАК СОЗДАВАТЬ
Интересное, красивое, содержательное видео про разработку Envoy. Оно на английском, но с вшитыми в видео субтитрами, так что смотрится легко. Я такие ролики смотрю в том числе, чтобы немного держать уровень английского. Не имея разговорной практики, я вполне сносно на слух перевожу с английского. И это только благодаря роликам с субтитрами.
▶️ Inside Envoy: The Proxy for the Future [OFFICIAL FILM]
Видео с вопросами админу. В основном со всем согласен, кроме некоторых частностей. Просто приятно было послушать коллегу по цеху.
▶️ 10 вопросов Linux-администратору
Герои видео поделились тем, как они пришли в профессию, как преодолевали трудности, как веселились и росли профессионалами. И рассказали, как стать крутым спецом в системном администрировании. Гости приятные, с грамотной речью. Интересно было послушать.
▶️ День системного администратора 2021
Если кому-то есть чем поделиться по теме IT видео, буду рад. Я люблю что-то слушать, смотреть, когда куда-то иду, еду, занимаюсь.
#видео
Денис Астахов, автор канала ADV-IT рассказал о том, где и как он рисует диаграммы. Всегда интересно посмотреть опыт специалиста по горячей теме. Впервые увидел использование Lucidchart.
▶️ АРХИТЕКТУРНЫЕ ДИАГРАММЫ - ГДЕ и КАК СОЗДАВАТЬ
Интересное, красивое, содержательное видео про разработку Envoy. Оно на английском, но с вшитыми в видео субтитрами, так что смотрится легко. Я такие ролики смотрю в том числе, чтобы немного держать уровень английского. Не имея разговорной практики, я вполне сносно на слух перевожу с английского. И это только благодаря роликам с субтитрами.
▶️ Inside Envoy: The Proxy for the Future [OFFICIAL FILM]
Видео с вопросами админу. В основном со всем согласен, кроме некоторых частностей. Просто приятно было послушать коллегу по цеху.
▶️ 10 вопросов Linux-администратору
Герои видео поделились тем, как они пришли в профессию, как преодолевали трудности, как веселились и росли профессионалами. И рассказали, как стать крутым спецом в системном администрировании. Гости приятные, с грамотной речью. Интересно было послушать.
▶️ День системного администратора 2021
Если кому-то есть чем поделиться по теме IT видео, буду рад. Я люблю что-то слушать, смотреть, когда куда-то иду, еду, занимаюсь.
#видео
YouTube
АРХИТЕКТУРНЫЕ ДИАГРАММЫ - ГДЕ и КАК СОЗДАВАТЬ
#lucidchart #диаграммы #инфраструктура
Lucidchart - www.lucidchart.com
Draw.io - www.drawio.com
CloudCraft - www.cloudcraft.co
PowerPoint - www.microsoft.com
Lucidchart - www.lucidchart.com
Draw.io - www.drawio.com
CloudCraft - www.cloudcraft.co
PowerPoint - www.microsoft.com
👍66👎1
🎓 По компьютерным сетям есть отличный курс "Компьютерные сети", Климанов М.М. от МФТИ (Московский физико-технический институт):
⇨ https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Я уже упоминал про него ранее.
Есть не хуже, а может даже и лучше, если судить про просмотрам и активности в комментариях, курс "Компьютерные сети, учебный курс.", Созыкин Андрей:
⇨ https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1
Там даётся база, азы сетей, поэтому заявлено, что он для программистов, так как сисадмины, по идее, и так должны всё это знать. Если не знаете, то этот курс вам отлично подойдёт. Для самообразования это будет базой для тех, кто не знаком с сетями. Сделан на основе классиков Таненбаум и Олиферы. Записан более 7-ми лет назад, но нисколько не потерял актуальность, так там база, практически неизменная с 80-х годов.
#обучение
⇨ https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
Я уже упоминал про него ранее.
Есть не хуже, а может даже и лучше, если судить про просмотрам и активности в комментариях, курс "Компьютерные сети, учебный курс.", Созыкин Андрей:
⇨ https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1
Там даётся база, азы сетей, поэтому заявлено, что он для программистов, так как сисадмины, по идее, и так должны всё это знать. Если не знаете, то этот курс вам отлично подойдёт. Для самообразования это будет базой для тех, кто не знаком с сетями. Сделан на основе классиков Таненбаум и Олиферы. Записан более 7-ми лет назад, но нисколько не потерял актуальность, так там база, практически неизменная с 80-х годов.
#обучение
👍140👎1
У меня часто спрашивают, как начать свой путь в системном администрирование, или в IT в целом. Причём спрашивают очень разные люди. Это могут быть родственники или родители, чьи дети готовятся куда-то поступать после школы. Просят советы взрослые люди и начинающие специалисты. Если есть время, могу просто пообщаться и что-то рассказать. Были и платные консультации, когда мне сразу предлагали заплатить за содержательную беседу.
Последнее время всё больше понимаю, что я толком не знаю, что посоветовать. Я же не учитель, не коуч, не создатель курсов по развитию и т.д. Сам закончил институт 16 лет назад и не знаю, как сейчас преподают. Я просто системный администратор, который ведёт свой блог и иногда пишет тематические статьи. У меня нет каких-то системных знаний или исследований этого вопроса.
Условно я делю всех вопрошающих на 3 категории:
1️⃣ Старшеклассники.
2️⃣ Молодые специалисты после универа.
3️⃣ Люди 30-35+, пытающиеся войти в IT из другой специальности.
🟢 Несколько лет назад я написал статью для подростков: Куда поступить, чтобы выучиться на программиста или сисадмина. Я советовал сразу вкатываться в IT со школьной скамьи и идти в универ на заочку просто для корочки. Не уверен, что дал там подходящие советы, но на тот момент думал именно так. Более того, подтверждение своих советов позже увидел лично в одном знакомом школьнике, который после окончания 11-го класса уже фактически имел профессию программиста и мог зарабатывать наравне со своими родителями. И он не хотел идти в ВУЗ, чем очень расстраивал своего отца, который просил моего совета, как быть. Я успокоил и сказать, что у вас всё круто. Мало кому так повезло найти себя уже в школе. Так что со школьниками вопрос открыт. Сейчас есть крутые университеты, типа Иннополиса. Я бы хотел там отучиться, или отправить учиться детей, если захотят.
🟡 Для начинающих специалистов у меня обычно другой совет. Денег там чаще всего ещё нет, так что рекомендую устроиться хоть куда за любые деньги, лишь бы была практика. Браться за любую работу, пробовать. По ходу дела вникать в отрасль и решать, что тебе в ней больше нравится. Параллельно изучать бесплатные курсы, материалы, статьи, в общем, всё что есть по понравившейся теме. Семьи ещё нет, времени много. Например, можно бесплатно попасть в какой-то инкубатор или интенсив и ударно там потрудиться. Такие мероприятия обычно организуют крупные вендоры, типа Tinkoff или VK. Там же можно и предложение по работе получить. Тоже таких знаю.
🔴 Для третьей категории рекомендую ещё раз хорошо подумать и если решение твёрдое, то идти на какие-то курсы. Времени на самообразование обычно уже нет, да и голова после 30 начинает хуже соображать. Тут уже нет времени сидеть самому, вникать и тыкаться наугад. Надо, чтобы помогли. Да и деньги к этому времени уже хоть какие-то есть, так что можно себе позволить где-то отучиться. К тому же из-за возраста подход по-любому будет основательный и взвешенный. Есть мотивация, в том числе и финансовая. Больше посоветовать нечего. Если честно, я не знаю, как тут вырулить в итоге. Чем и как нужно впечатлить нанимателей, убедив их, что джун 35-ти лет хороший вариант для их вакансии, если там ещё 50 таких же, только 23-х летних после универа. Если у кого-то есть практические советы на этот счёт, то поделитесь своим мнением. Уверен, среди читателей есть люди, которые вкатились в IT после 30-ти.
Кстати, вот моя заметка про современные онлайн курсы.
Если у вас есть какие-то мысли, советы, примеры по данной теме, поделитесь. Мне хотелось бы лучше разобраться в этой теме, чтобы не надавать вредных советов, которые могут по итогу кому-нибудь навредить, особенно подросткам. К тому же время быстро летит. Ещё лет 5 и мне уже нужно будет что-то думать насчёт старшего сына.
#мысли #обучение
Последнее время всё больше понимаю, что я толком не знаю, что посоветовать. Я же не учитель, не коуч, не создатель курсов по развитию и т.д. Сам закончил институт 16 лет назад и не знаю, как сейчас преподают. Я просто системный администратор, который ведёт свой блог и иногда пишет тематические статьи. У меня нет каких-то системных знаний или исследований этого вопроса.
Условно я делю всех вопрошающих на 3 категории:
1️⃣ Старшеклассники.
2️⃣ Молодые специалисты после универа.
3️⃣ Люди 30-35+, пытающиеся войти в IT из другой специальности.
🟢 Несколько лет назад я написал статью для подростков: Куда поступить, чтобы выучиться на программиста или сисадмина. Я советовал сразу вкатываться в IT со школьной скамьи и идти в универ на заочку просто для корочки. Не уверен, что дал там подходящие советы, но на тот момент думал именно так. Более того, подтверждение своих советов позже увидел лично в одном знакомом школьнике, который после окончания 11-го класса уже фактически имел профессию программиста и мог зарабатывать наравне со своими родителями. И он не хотел идти в ВУЗ, чем очень расстраивал своего отца, который просил моего совета, как быть. Я успокоил и сказать, что у вас всё круто. Мало кому так повезло найти себя уже в школе. Так что со школьниками вопрос открыт. Сейчас есть крутые университеты, типа Иннополиса. Я бы хотел там отучиться, или отправить учиться детей, если захотят.
🟡 Для начинающих специалистов у меня обычно другой совет. Денег там чаще всего ещё нет, так что рекомендую устроиться хоть куда за любые деньги, лишь бы была практика. Браться за любую работу, пробовать. По ходу дела вникать в отрасль и решать, что тебе в ней больше нравится. Параллельно изучать бесплатные курсы, материалы, статьи, в общем, всё что есть по понравившейся теме. Семьи ещё нет, времени много. Например, можно бесплатно попасть в какой-то инкубатор или интенсив и ударно там потрудиться. Такие мероприятия обычно организуют крупные вендоры, типа Tinkoff или VK. Там же можно и предложение по работе получить. Тоже таких знаю.
🔴 Для третьей категории рекомендую ещё раз хорошо подумать и если решение твёрдое, то идти на какие-то курсы. Времени на самообразование обычно уже нет, да и голова после 30 начинает хуже соображать. Тут уже нет времени сидеть самому, вникать и тыкаться наугад. Надо, чтобы помогли. Да и деньги к этому времени уже хоть какие-то есть, так что можно себе позволить где-то отучиться. К тому же из-за возраста подход по-любому будет основательный и взвешенный. Есть мотивация, в том числе и финансовая. Больше посоветовать нечего. Если честно, я не знаю, как тут вырулить в итоге. Чем и как нужно впечатлить нанимателей, убедив их, что джун 35-ти лет хороший вариант для их вакансии, если там ещё 50 таких же, только 23-х летних после универа. Если у кого-то есть практические советы на этот счёт, то поделитесь своим мнением. Уверен, среди читателей есть люди, которые вкатились в IT после 30-ти.
Кстати, вот моя заметка про современные онлайн курсы.
Если у вас есть какие-то мысли, советы, примеры по данной теме, поделитесь. Мне хотелось бы лучше разобраться в этой теме, чтобы не надавать вредных советов, которые могут по итогу кому-нибудь навредить, особенно подросткам. К тому же время быстро летит. Ещё лет 5 и мне уже нужно будет что-то думать насчёт старшего сына.
#мысли #обучение
Server Admin
Куда поступить, чтобы выучиться на программиста или сисадмина |...
Меня периодически спрашивают знакомые родители или подростки, с чего начать карьеру в IT сфере. В первую очередь речь идет об учебном заведении. В какой ВУЗ поступить, чтобы выучиться на...
👍69👎6
Наиболее популярным WAF (Web Application Firewall), как платным, так и бесплатным, является ModSecurity. Компания, которая его разрабатывала, поддерживала и обеспечивала платную техническую поддержку давно уже объявила дату End-of-Life (EOL) - 1 июля 2024 года. После этого код полностью переходит на поддержку open source сообщества. Вряд ли без регулярных денежных вливаний продукт продолжит развитие. А так как он основан на статических сигнатурах, без регулярного обновления быстро потеряет актуальность.
В связи с этим появился шанс у других сервисов получить дополнительную аудиторию. Одним из относительно новых проектов (ему примерно год) из этой сферы является open-appsec. Я его установил, настроил и протестировал в реальной работе. Выглядит он неплохо и результат выдал не хуже, чем в среднем показывают подобные программы. Чтобы разобраться и настроить, я потратил много времени, так что не смогу подробно описать. Но попробую рассказать саму суть и дать основные ссылки, чтобы при желании можно было повторить и попробовать.
В основе open-appsec лежит алгоритм машинного обучения. Используются 3 модели, в зависимости от подписки:
1️⃣ Basic model - бесплатная оффлайновая модель, которая лежит в github и используется по умолчанию.
2️⃣ Advanced model - тоже оффлайновая модель, может быть вручную скачана и установлена из личного кабинета сервиса. Регистрация там бесплатная.
3️⃣ Unsupervised model - работает и обновляется в режиме реального времени. Это платная функция.
Open-appsec существует в виде open-source версии с оффлайновой обученной моделью, которую можно скачать и установить из репозитория. Advanced модель можно использовать, если зарегистрироваться и вручную качать её обновления из личного кабинета, которые периодически выходят с уведомлением на email. Ну а третья модель это платная подписка. Она, соответственно, считается самой надёжной.
Сервис монетизируется по модели SaaS. Есть веб панель управления, через которую можно управлять системой. Там же в этой панели хранятся логи и вся аналитика. Если используете бесплатную версию, то всё управление локально через CLI и yaml конфиги. Логи тоже все хранятся у вас локально. В целом, довольно честно.
Я запускал и тестировал open source версию с basic model, потом подключил её к SaaS и уже там посмотрел отчёты. То есть эффективность работы бесплатной версии не сильно хуже платной, а платить предлагают за удобство управления.
Работает Open-appsec в виде модуля к Nginx. Установка простая. Выполняется автоматически. По сути, нужно просто скачать модуль, подключить его к Nginx, установить агент Open-appsec, который всем управляет. Также сервис интегрирован в Kubernetes и его NGINX Ingress Controller.
Все инструкции по установке, настройке и управлению интегрированы в готовые Playground площадки, где можно в режиме реального времени самому всё настроить и попробовать. Все инструкции из этих площадок можно использовать на своём сервере, так как по сути у вас там копия виртуальной машины.
Отдельно отмечу, что у Open-appsec уже есть интеграция с CrowdSec. Что такое CrowdSec, я писал отдельно. Это современный аналог Fail2ban, только намного более развитый и функциональный.
Продукт довольно сложный. Но тут это скорее норма, чем исключение. Я не видел нигде, чтобы WAF легко настраивался. Чтобы комфортно работать с системой, обязательно придётся куда-то выгружать логи, так как они огромные. Работать с ними локально неудобно, а придётся, так как нужно будет анализировать работу и настраивать исключения. По умолчанию сервис будет работать в режиме обучения, изучения, фиксации атак (detect-learn). Потом его можно переключить в режим отражения (prevent-learn).
В целом, мне продукт понравился. Думаю, он получит активное развитие и распространение в будущем. На текущий момент бесплатный Community
Edition тариф в SaaS весьма функциональный. Эффективность, если верить тестам отсюда, на уровне Free тарифа CloudFlare.
⇨ Сайт / Исходники
#waf
В связи с этим появился шанс у других сервисов получить дополнительную аудиторию. Одним из относительно новых проектов (ему примерно год) из этой сферы является open-appsec. Я его установил, настроил и протестировал в реальной работе. Выглядит он неплохо и результат выдал не хуже, чем в среднем показывают подобные программы. Чтобы разобраться и настроить, я потратил много времени, так что не смогу подробно описать. Но попробую рассказать саму суть и дать основные ссылки, чтобы при желании можно было повторить и попробовать.
В основе open-appsec лежит алгоритм машинного обучения. Используются 3 модели, в зависимости от подписки:
1️⃣ Basic model - бесплатная оффлайновая модель, которая лежит в github и используется по умолчанию.
2️⃣ Advanced model - тоже оффлайновая модель, может быть вручную скачана и установлена из личного кабинета сервиса. Регистрация там бесплатная.
3️⃣ Unsupervised model - работает и обновляется в режиме реального времени. Это платная функция.
Open-appsec существует в виде open-source версии с оффлайновой обученной моделью, которую можно скачать и установить из репозитория. Advanced модель можно использовать, если зарегистрироваться и вручную качать её обновления из личного кабинета, которые периодически выходят с уведомлением на email. Ну а третья модель это платная подписка. Она, соответственно, считается самой надёжной.
Сервис монетизируется по модели SaaS. Есть веб панель управления, через которую можно управлять системой. Там же в этой панели хранятся логи и вся аналитика. Если используете бесплатную версию, то всё управление локально через CLI и yaml конфиги. Логи тоже все хранятся у вас локально. В целом, довольно честно.
Я запускал и тестировал open source версию с basic model, потом подключил её к SaaS и уже там посмотрел отчёты. То есть эффективность работы бесплатной версии не сильно хуже платной, а платить предлагают за удобство управления.
Работает Open-appsec в виде модуля к Nginx. Установка простая. Выполняется автоматически. По сути, нужно просто скачать модуль, подключить его к Nginx, установить агент Open-appsec, который всем управляет. Также сервис интегрирован в Kubernetes и его NGINX Ingress Controller.
Все инструкции по установке, настройке и управлению интегрированы в готовые Playground площадки, где можно в режиме реального времени самому всё настроить и попробовать. Все инструкции из этих площадок можно использовать на своём сервере, так как по сути у вас там копия виртуальной машины.
Отдельно отмечу, что у Open-appsec уже есть интеграция с CrowdSec. Что такое CrowdSec, я писал отдельно. Это современный аналог Fail2ban, только намного более развитый и функциональный.
Продукт довольно сложный. Но тут это скорее норма, чем исключение. Я не видел нигде, чтобы WAF легко настраивался. Чтобы комфортно работать с системой, обязательно придётся куда-то выгружать логи, так как они огромные. Работать с ними локально неудобно, а придётся, так как нужно будет анализировать работу и настраивать исключения. По умолчанию сервис будет работать в режиме обучения, изучения, фиксации атак (detect-learn). Потом его можно переключить в режим отражения (prevent-learn).
В целом, мне продукт понравился. Думаю, он получит активное развитие и распространение в будущем. На текущий момент бесплатный Community
Edition тариф в SaaS весьма функциональный. Эффективность, если верить тестам отсюда, на уровне Free тарифа CloudFlare.
⇨ Сайт / Исходники
#waf
👍61👎1
Продолжу тему WAF, раз уж начал. Я ранее писал про Nemesida WAF. Это коммерческий продукт, у которого есть бесплатная версия. Причём вполне функциональная, можно пользоваться. Существенное отличие от платной версии - только сигнатурный анализ. При этом в платной присутствует AI (Искусственный Интеллект) и ML (Машинное обучение). Это бесплатную Nemesida отличает от бесплатной же Open-appsec, где ML есть в open source версии.
Заметку я хочу написать не об этом, а о бесплатном продукте той же Nemesida - WAF Bypass Tool. Это open source утилита для проверки эффективности работы WAF. Она прогоняет через сайт кучу различных запросов на тестирование всевозможных уязвимостей (Cross Site Scripting (XSS), Open Redirect (OR), Remote File Execution (RCE) и т.д.) и в конце сводит результаты в табличный вид. С её помощью можно быстро оценить качество работы того или иного продукта, а также различных режимов настроек.
Для базовой проверки достаточно указать только адрес сайта и запустить любым удобным способом инструмент. Либо скачать python скрипт:
Либо запустить в контейнере из Docker Hub, тогда вообще ничего делать не надо:
Ключами можно управлять настройками. Например, использовать прокси, ограничивать число потоков (имеет смысл сделать, так как утилита выполняет около 3000 тысяч запросов, можно получить бан за интенсивность), выводить результаты в json, управлять детализацией вывода, выбирать отдельные наборы тестов и т.д. Можно писать свои тесты, запускать их на постоянку и забирать результаты в мониторинг.
Утилита проверяет количество ложно-положительных (FP - False Positive) и ложно-отрицательных (FN - False Negative) срабатываний. Это один из наиболее значимых критериев работы WAF. Значение PASSED (OK) покажет количество заблокированных проверок.
#waf
Заметку я хочу написать не об этом, а о бесплатном продукте той же Nemesida - WAF Bypass Tool. Это open source утилита для проверки эффективности работы WAF. Она прогоняет через сайт кучу различных запросов на тестирование всевозможных уязвимостей (Cross Site Scripting (XSS), Open Redirect (OR), Remote File Execution (RCE) и т.д.) и в конце сводит результаты в табличный вид. С её помощью можно быстро оценить качество работы того или иного продукта, а также различных режимов настроек.
Для базовой проверки достаточно указать только адрес сайта и запустить любым удобным способом инструмент. Либо скачать python скрипт:
# git clone https://github.com/nemesida-waf/waf_bypass.git /opt/waf-bypass/
# python3 -m pip install -r /opt/waf-bypass/requirements.txt
# python3 /opt/waf-bypass/main.py --host='example.com'
Либо запустить в контейнере из Docker Hub, тогда вообще ничего делать не надо:
# docker run nemesida/waf-bypass --host='example.com'
Ключами можно управлять настройками. Например, использовать прокси, ограничивать число потоков (имеет смысл сделать, так как утилита выполняет около 3000 тысяч запросов, можно получить бан за интенсивность), выводить результаты в json, управлять детализацией вывода, выбирать отдельные наборы тестов и т.д. Можно писать свои тесты, запускать их на постоянку и забирать результаты в мониторинг.
Утилита проверяет количество ложно-положительных (FP - False Positive) и ложно-отрицательных (FN - False Negative) срабатываний. Это один из наиболее значимых критериев работы WAF. Значение PASSED (OK) покажет количество заблокированных проверок.
#waf
👍51👎1
Есть любопытный проект под названием WireHole. Это docker-compose файл, который скрещивает в единое целое WireGuard, Pi-hole и Unbound для быстрого и удобного развёртывания VPN инфраструктуры, где клиенты автоматически получают DNS сервер с фильтрацией рекламы на уровне запросов.
Особенно это удобно для смартфонов. Небольшой WG клиент, быстрая настройка с помощью QR кода и на выходе у вас статичный IP от арендованной VPS или домашнего сервера и фильтрация рекламы средствами DNS. Настройка занимает буквально 5 минут.
Всё бы хорошо, но в настоящее время данный проект стал жертвой типичной проблемы, когда используются контейнеры с тэгом latest. Изменился базовый контейнер linuxserver/wireguard, за ним следом сломался ngoduykhanh/wireguard-ui. Ну и теперь ничего не работает. Я и так, и сяк его ковырял, пытаясь исправить. Потратил кучу времени и всё впустую. Уже бы сам быстрее собрал всё это, но каждый раз казалось, что ещё вот-вот и всё получится.
В итоге нашёл форк этой репы - https://github.com/m-karakus/wirehole. Человек просто взял и форкнул более старую версию проекта WireHole, когда использовался веб интерфейс wg-easy, а не wireguard-ui. И теперь всё реально запускается в пару кликов.
Копируете себе репу:
Редактируете
Идём в веб интерфейс https://ip-address:51821/ и добавляем клиента. Сканируем на смартфоне QR код и добавляем новое vpn соединение. Подключаемся и выходим в интернет через IP адрес сервера.
Веб интерфейс Pi-hole доступен через внутреннюю сеть по адресу https://10.2.0.100/admin. Там можно что-то настроить, посмотреть статистику. Она ведётся в том числе и по всем DNS запросам. Можно быстро оценить, куда ходит смартфон. А он куда только не ходит.
Удобная штука. Я взял VPS, накатил туда этот композ. Создал 2 учётки - для ноута и смартфона. Проверил, всё работает. Ничего особенного тут нет. Можно и самому всё это настроить. Но потом надо время тратить на поддержку и т.д. Проще взять что-то более ли менее популярное. Думаю, что WireHole в ближайшее время поправят и можно будет пользоваться. Он довольно старый и популярный. Не думаю, что его бросят. К тому же видел уже и в issues обсуждение проблемы и готовые pull requests. Судя по всему, пока некому их проверить и принять в основную ветку.
В заключении напомню, что лучше не использовать в проектах контейнеры с тэгом latest, если не вы их собираете. Всё в любой момент может сломаться. Лучше вручную это дело обновлять.
⇨ Исходники
#wireguard
Особенно это удобно для смартфонов. Небольшой WG клиент, быстрая настройка с помощью QR кода и на выходе у вас статичный IP от арендованной VPS или домашнего сервера и фильтрация рекламы средствами DNS. Настройка занимает буквально 5 минут.
Всё бы хорошо, но в настоящее время данный проект стал жертвой типичной проблемы, когда используются контейнеры с тэгом latest. Изменился базовый контейнер linuxserver/wireguard, за ним следом сломался ngoduykhanh/wireguard-ui. Ну и теперь ничего не работает. Я и так, и сяк его ковырял, пытаясь исправить. Потратил кучу времени и всё впустую. Уже бы сам быстрее собрал всё это, но каждый раз казалось, что ещё вот-вот и всё получится.
В итоге нашёл форк этой репы - https://github.com/m-karakus/wirehole. Человек просто взял и форкнул более старую версию проекта WireHole, когда использовался веб интерфейс wg-easy, а не wireguard-ui. И теперь всё реально запускается в пару кликов.
Копируете себе репу:
# git clone https://github.com/m-karakus/wirehole.git
Редактируете
.env
. В переменную MASTER пишите свой внешний IP адрес, указываете пароль для веб панели Wireguard и веб интерфейса Pi-hole. Больше можно ничего не менять. Запускаем:# docker compose up
Идём в веб интерфейс https://ip-address:51821/ и добавляем клиента. Сканируем на смартфоне QR код и добавляем новое vpn соединение. Подключаемся и выходим в интернет через IP адрес сервера.
Веб интерфейс Pi-hole доступен через внутреннюю сеть по адресу https://10.2.0.100/admin. Там можно что-то настроить, посмотреть статистику. Она ведётся в том числе и по всем DNS запросам. Можно быстро оценить, куда ходит смартфон. А он куда только не ходит.
Удобная штука. Я взял VPS, накатил туда этот композ. Создал 2 учётки - для ноута и смартфона. Проверил, всё работает. Ничего особенного тут нет. Можно и самому всё это настроить. Но потом надо время тратить на поддержку и т.д. Проще взять что-то более ли менее популярное. Думаю, что WireHole в ближайшее время поправят и можно будет пользоваться. Он довольно старый и популярный. Не думаю, что его бросят. К тому же видел уже и в issues обсуждение проблемы и готовые pull requests. Судя по всему, пока некому их проверить и принять в основную ветку.
В заключении напомню, что лучше не использовать в проектах контейнеры с тэгом latest, если не вы их собираете. Всё в любой момент может сломаться. Лучше вручную это дело обновлять.
⇨ Исходники
#wireguard
👍97👎1
Вы знали, что curl умеет отправлять почту через внешние smtp серверы? Я в целом знаю, что curl умеет всё, что только можно придумать про передачу данных, но конкретно вопрос не прорабатывал, хотя вскользь уже упоминал об этом, но в рамках решения другой задачи, поэтому особо не погружался в тему. Поэтому для отправки почты из консоли всё время ставлю какую-то дополнительную утилиту, типа mailx. На самом деле это не обязательно. Сейчас покажу, как отправлять почту через curl, не светя пароль в консоли.
Сразу ссылка на документацию. Оправляем почту полностью через ключи curl:
Содержимое mail.txt примерно следующее:
Причём с помощью curl очень удобно управлять адресом отправителя. В mail.txt его любой указать можно, а не тот, от которого идёт отправка. Впрочем, как и другие заголовки.
Не очень хорошая идея светить почтовый пароль в консоли. Можно его спрятать в
Каждый сервер на новой строке. Удобно, если используется отправка через несколько разных серверов. В соответствии с указанным smtp сервером берутся настройки учётной записи из файла
Так как мы используем ключ
Если используется шифрованное соединение и порт 465, то достаточно просто указать адрес сервера в виде
Для того, чтобы явно указать HELO / EHLO при отправке, добавьте его через слеш после адреса сервера. Примерно так:
#terminal #curl
Сразу ссылка на документацию. Оправляем почту полностью через ключи curl:
# curl -v --url "smtp://mail.server.ru:25" --mail-from "[email protected]" --mail-rcpt "[email protected]" --user '[email protected]:password123' --upload-file ~/mail.txt
Содержимое mail.txt примерно следующее:
From: "Vladimir" <[email protected]>
To: "User" <[email protected]>
Subject: Mail from curl
Hello! How are you?
Причём с помощью curl очень удобно управлять адресом отправителя. В mail.txt его любой указать можно, а не тот, от которого идёт отправка. Впрочем, как и другие заголовки.
Не очень хорошая идея светить почтовый пароль в консоли. Можно его спрятать в
.netrc
файл. Для этого его надо создать в домашней директории пользователя ~/.netrc
. Содержание такое:machine mail.server.ru login [email protected] password password123
machine mail.server02.ru login [email protected] password password12345
Каждый сервер на новой строке. Удобно, если используется отправка через несколько разных серверов. В соответствии с указанным smtp сервером берутся настройки учётной записи из файла
.netrc
. Команда на отправку с использованием .netrc
будет такая:# curl -v --url "smtp://mail.server.ru:25" --mail-from "[email protected]" --mail-rcpt "[email protected]" --netrc --upload-file ~/mail.txt
Так как мы используем ключ
-v
, в консоли видим весь лог общения с почтовым сервером, что может быть удобно для отладки. Если не указывать никаких ключей для TLS, то будет использоваться нешифрованное соединение. Если нужно только шифрованное, то можно добавить ключ --ssl-reqd
, а если хотите чтобы при поддержке сервером шифрование использовалось, а если поддержки нет, то нет, тогда добавьте ключ --ssl
. Если используется шифрованное соединение и порт 465, то достаточно просто указать адрес сервера в виде
smtps://mail.server.ru
. Отдельно указывать порт и ключи для ssl не обязательно. Для того, чтобы явно указать HELO / EHLO при отправке, добавьте его через слеш после адреса сервера. Примерно так:
smtp://mail.server.ru/client_helo.server.ru
#terminal #curl
👍147👎3
Я обновил популярную подборку со своего сайта:
⇨ Топ бесплатных программ для бэкапа
Обновил не в плане актуализировал все описания, а просто дополнил статью всеми программами, что были упомянуты в моём канале. Я не представляю, как эту подборку можно актуализировать. Слишком хлопотно всё это перепроверять и обновлять описания.
Даже в таком виде статья информативна. Если подбираете себе бесплатный инструмент для бэкапа, то подборка поможет быстро сориентироваться в том, что есть, посмотреть алгоритмы, основные возможности, поддерживаемые платформы, наличие веб интерфейса и т.д.
Плюс, к каждому продукту есть ссылка на обсуждение в Telegram канале, где есть в том числе отзывы и рекомендации от тех, кто пользовался. Именно поэтому я прошу не флудить в комментариях и не превращать чат в болталку. Иногда удаляю то, что считаю бесполезным для читателей (мемы, картинки, ссоры и т.д.), чтобы не занимать зря их время и внимание.
Если считаете, что какой-то полезной программы не хватает, пишите в комментариях здесь или на сайте. Я буду дополнять. В этом обновлении добавил туда ElkarBackup, FBackup. Почему-то их там не было. До этого добавлял ReaR и Restic, но анонса не делал.
#backup #подборка
⇨ Топ бесплатных программ для бэкапа
Обновил не в плане актуализировал все описания, а просто дополнил статью всеми программами, что были упомянуты в моём канале. Я не представляю, как эту подборку можно актуализировать. Слишком хлопотно всё это перепроверять и обновлять описания.
Даже в таком виде статья информативна. Если подбираете себе бесплатный инструмент для бэкапа, то подборка поможет быстро сориентироваться в том, что есть, посмотреть алгоритмы, основные возможности, поддерживаемые платформы, наличие веб интерфейса и т.д.
Плюс, к каждому продукту есть ссылка на обсуждение в Telegram канале, где есть в том числе отзывы и рекомендации от тех, кто пользовался. Именно поэтому я прошу не флудить в комментариях и не превращать чат в болталку. Иногда удаляю то, что считаю бесполезным для читателей (мемы, картинки, ссоры и т.д.), чтобы не занимать зря их время и внимание.
Если считаете, что какой-то полезной программы не хватает, пишите в комментариях здесь или на сайте. Я буду дополнять. В этом обновлении добавил туда ElkarBackup, FBackup. Почему-то их там не было. До этого добавлял ReaR и Restic, но анонса не делал.
#backup #подборка
Server Admin
Топ бесплатных программ для бэкапа | serveradmin.ru
Подборка бесплатных программ для бэкапа. Краткое описание, возможности, отзывы реальных людей об использовании.
👍119👎2
Когда готовил материал по отправке email сообщений через curl, подумал, он же наверное и читать умеет. И не ошибся. Curl реально умеет читать, и не только, почту по imap. Это открывает очень широкие возможности по мониторингу почтовых серверов с помощью утилиты.
Меня не раз спрашивали, как удобнее всего настроить мониторинг почтовых сообщений в ящике, чтобы приходили уведомления при получении письма определённого содержания. Я обычно советовал либо на самом почтовом сервере прямо в ящике анализировать текст писем, если это возможно. Либо использовать какие-то программы типа fetchmail, imapsync или обычные почтовые клиенты. И уже в них как-то анализировать письма.
Но с curl всё получается намного проще. Она много чего умеет. Расскажу по порядку. Сразу важная сноска, которая сильно затормозила меня в этом вопросе. Когда будете пробовать, возьмите свежую версию curl. Более старые некоторые команды для imap не поддерживают. Я сначала наткнулся на это в старом сервере Centos 7. Потом уже перешёл на современный Debian и там всё получилось.
Сразу перенесём логин с паролем в отдельный файл
Проверяем количество сообщений в imap папке INBOX:
Получили число 405. Посмотрим, сколько из них непрочитанных:
147 непрочитанных сообщений. Думаю, идею вы поняли. С помощью curl можно напрямую передавать серверу команды imap.
Смотрим список директорий в ящике:
Или просто:
Ищем в ящике письма с темой test:
или так:
Сообщения от определённого адресата:
Получили UIDs писем. Смотрим содержание письма с конкретным UID. Для этого надо добавить ключ
или так:
И так далее. Письмо после проверки можно пометить прочтённым, переместить в другую директорию, удалить. Чтобы осмысленно дёргать imap сервер, достаточно посмотреть описание протокола. Информация по нему легко находится в поиске.
Команды imap рассмотрены в упоминаемом недавно курсе по сетям от Созыкина Андрея. Вот конкретный урок: ▶️ Протокол IMAP. Вообще, было интересно во всём этом разобраться. Если надо будет настроить мониторинг очередного почтового сервера, попробую что-то применить с помощью curl.
Первое, что приходит в голову в плане мониторинга - отправлять письмо с меткой времени в теле, а потом забирать его и анализировать эту метку. Если метка старая, значит письма не ходят. Это надёжнее, чем просто проверять статус служб и доступность портов. Тут и smtp, и imap сервер проверяются. И реализуется полностью с помощью curl и zabbix.
#curl #terminal
Меня не раз спрашивали, как удобнее всего настроить мониторинг почтовых сообщений в ящике, чтобы приходили уведомления при получении письма определённого содержания. Я обычно советовал либо на самом почтовом сервере прямо в ящике анализировать текст писем, если это возможно. Либо использовать какие-то программы типа fetchmail, imapsync или обычные почтовые клиенты. И уже в них как-то анализировать письма.
Но с curl всё получается намного проще. Она много чего умеет. Расскажу по порядку. Сразу важная сноска, которая сильно затормозила меня в этом вопросе. Когда будете пробовать, возьмите свежую версию curl. Более старые некоторые команды для imap не поддерживают. Я сначала наткнулся на это в старом сервере Centos 7. Потом уже перешёл на современный Debian и там всё получилось.
Сразу перенесём логин с паролем в отдельный файл
~/.netrc
:machine mail.server.tld login username password supersecretpw
Проверяем количество сообщений в imap папке INBOX:
# curl "imap:/mail.server.tld" -n -X 'STATUS INBOX (MESSAGES)'
* STATUS INBOX (MESSAGES 405)
Получили число 405. Посмотрим, сколько из них непрочитанных:
# curl "imap://mail.server.tld" -n -X 'STATUS INBOX (UNSEEN)'
* STATUS INBOX (UNSEEN 147)
147 непрочитанных сообщений. Думаю, идею вы поняли. С помощью curl можно напрямую передавать серверу команды imap.
Смотрим список директорий в ящике:
# curl "imap://mail.server.tld" -n -X 'LIST "" "*"'
* LIST (\HasNoChildren \Marked \Trash) "/" Trash
* LIST (\HasNoChildren \UnMarked \Junk) "/" Junk
* LIST (\HasNoChildren \UnMarked \Drafts) "/" Drafts
* LIST (\HasNoChildren \Sent) "/" Sent
* LIST (\HasChildren) "/" INBOX
Или просто:
# curl "imap://mail.server.tld" -n
Ищем в ящике письма с темой test:
# curl "imap://mail.server.tld/INBOX?SUBJECT%20test" -n
* SEARCH 62 404 405 406
или так:
# curl "imap://mail.server.tld/INBOX" -n -X 'SEARCH HEADER Subject test'
Сообщения от определённого адресата:
# curl "imap://mail.server.tld/INBOX" -n -X 'SEARCH From [email protected]'
* SEARCH 292 404 405 406
Получили UIDs писем. Смотрим содержание письма с конкретным UID. Для этого надо добавить ключ
-v
, так как оно передаётся в отладочной информации, как и все остальные ответы сервера:# curl -v "imap://mail.server.tld/INBOX" -n -X 'FETCH 406 BODY[TEXT]'
или так:
# curl -v "imap://mail.server.tld/INBOX;UID=406/;BODY=TEXT" -n
И так далее. Письмо после проверки можно пометить прочтённым, переместить в другую директорию, удалить. Чтобы осмысленно дёргать imap сервер, достаточно посмотреть описание протокола. Информация по нему легко находится в поиске.
Команды imap рассмотрены в упоминаемом недавно курсе по сетям от Созыкина Андрея. Вот конкретный урок: ▶️ Протокол IMAP. Вообще, было интересно во всём этом разобраться. Если надо будет настроить мониторинг очередного почтового сервера, попробую что-то применить с помощью curl.
Первое, что приходит в голову в плане мониторинга - отправлять письмо с меткой времени в теле, а потом забирать его и анализировать эту метку. Если метка старая, значит письма не ходят. Это надёжнее, чем просто проверять статус служб и доступность портов. Тут и smtp, и imap сервер проверяются. И реализуется полностью с помощью curl и zabbix.
#curl #terminal
👍148👎4
Те, кто сталкивался с настройкой VoIP телефонии, наверняка знают, что такое протокол и сервер STUN. Там постоянно приходится с ним взаимодействовать. Не припомню, где он использовался ещё. Но последнее время в связи с развитием протокола WebRTC, а также программных средств для видеоконференций на его основе, тема снова стала актуальной, даже ещё больше, чем с VoIP. Кратенько своими словами расскажу, что такое STUN и TURN.
Протокол STUN и сервера на его основе решают очень простую задачу. Позволяют клиентам за NAT узнать свой внешний IP адрес и порт, с которого ушёл запрос, чтобы организовать соединение к себе для прохождения голосового или видео потока. Клиент делает запрос на внешний сервер STUN, а тот ему отвечает, что запрос был сделан с такого-то IP и порта. Клиент передаёт эту информацию тому, кто хочет с ним соединиться.
Дополнением протокола STUN стал TURN. Он включает в себя возможности STUN, но и добавляет новые. В зависимости от настроек NAT на конкретном шлюзе, не всегда можно пробиться к клиенту извне. Данные, которые передаст STUN сервер клиенту, будут актуальны только для подключения этого STUN сервера, но не других клиентов. Шлюз просто отбросит от них соединения. Отдельная проблема, когда оба клиента за таким NAT.
TURN сервер с помощью дополнительного суб-протокола ICE способен оценить варианты взаимодействия двух клиентов, которые к нему обратились. Он проверяет их возможность соединиться напрямую и с помощью STUN сервера. Если оба варианта не сработают, то он выступит в роли ретранслятора и организует соединение клиентов через себя. При этом сами клиенты будут думать, что они соединены напрямую.
Наиболее известной бесплатной реализацией TURN сервера является Coturn, который можно развернуть у себя. При этом в сети довольно много и бесплатный серверов, которые реализуют возможности этих протоколов. Например, известный STUN сервер от гугла - stun.l.google.com. Можно использовать для каких-то своих задач. TURN полностью бесплатный вряд ли можно найти. За это уже деньги надо платить, но есть сервисы с ограниченными бесплатными тарифными планами.
Проверить работу STUN и TURN серверов можно с помощью публичного сервиса:
⇨ https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
Указываете адрес сервера в формате
▶️ Вот тут на индусском английском рассказано с картинками то, что я описал.
#voip #webrtc
Протокол STUN и сервера на его основе решают очень простую задачу. Позволяют клиентам за NAT узнать свой внешний IP адрес и порт, с которого ушёл запрос, чтобы организовать соединение к себе для прохождения голосового или видео потока. Клиент делает запрос на внешний сервер STUN, а тот ему отвечает, что запрос был сделан с такого-то IP и порта. Клиент передаёт эту информацию тому, кто хочет с ним соединиться.
Дополнением протокола STUN стал TURN. Он включает в себя возможности STUN, но и добавляет новые. В зависимости от настроек NAT на конкретном шлюзе, не всегда можно пробиться к клиенту извне. Данные, которые передаст STUN сервер клиенту, будут актуальны только для подключения этого STUN сервера, но не других клиентов. Шлюз просто отбросит от них соединения. Отдельная проблема, когда оба клиента за таким NAT.
TURN сервер с помощью дополнительного суб-протокола ICE способен оценить варианты взаимодействия двух клиентов, которые к нему обратились. Он проверяет их возможность соединиться напрямую и с помощью STUN сервера. Если оба варианта не сработают, то он выступит в роли ретранслятора и организует соединение клиентов через себя. При этом сами клиенты будут думать, что они соединены напрямую.
Наиболее известной бесплатной реализацией TURN сервера является Coturn, который можно развернуть у себя. При этом в сети довольно много и бесплатный серверов, которые реализуют возможности этих протоколов. Например, известный STUN сервер от гугла - stun.l.google.com. Можно использовать для каких-то своих задач. TURN полностью бесплатный вряд ли можно найти. За это уже деньги надо платить, но есть сервисы с ограниченными бесплатными тарифными планами.
Проверить работу STUN и TURN серверов можно с помощью публичного сервиса:
⇨ https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
Указываете адрес сервера в формате
stun:stun.l.google.com:19302
и запускаете проверку. Наглядно видно, что возвращает STUN сервер - внешний IP адрес и порт.▶️ Вот тут на индусском английском рассказано с картинками то, что я описал.
#voip #webrtc
👍86👎3
Не знаю, в курсе вы или нет, но все торрент раздачи довольно легко отслеживаются. Я примерно представлял себе, что это реально, но не думал, что настолько просто. Есть сайт:
⇨ https://iknowwhatyoudownload.com
Указываете свой IP адрес и наблюдаете свои раздачи. У меня дома статика много лет. Сервис видит всё, что я раздаю. Причём информация очень свежая. У меня много раздач. Постоянно что-то детям качаю - фильмы, сказки, мультики и т.д. Обычно оставляю их на раздаче, не удаляю. Так вот, они там все.
Потыкал там случайные айпишники. Чего только нет - фильмы, игры, софт, xxx и т.д. В общем, имейте ввиду, что все ваши торренты на виду.
#разное
⇨ https://iknowwhatyoudownload.com
Указываете свой IP адрес и наблюдаете свои раздачи. У меня дома статика много лет. Сервис видит всё, что я раздаю. Причём информация очень свежая. У меня много раздач. Постоянно что-то детям качаю - фильмы, сказки, мультики и т.д. Обычно оставляю их на раздаче, не удаляю. Так вот, они там все.
Потыкал там случайные айпишники. Чего только нет - фильмы, игры, софт, xxx и т.д. В общем, имейте ввиду, что все ваши торренты на виду.
#разное
👍156👎7
Я уже делал серию заметок про CIS (Center for Internet Security). Это некоммерческая организация, которая разрабатывает собственные рекомендации по обеспечению безопасности различных систем. Я проработал рекомендации для:
- Nginx
- MySQL 5.7
- Apache 2.4
- Debian 11
- Docker
- Ubuntu 22.04 LTS
Основная проблема этих рекомендаций - они составлены в огромные pdf книги, иногда до 800 страниц и покрывают очень широкий вектор атак. Выбрать из них то, что вам нужно, довольно хлопотно. Я выделяю основные рекомендации, которые стоит учесть при базовом использовании стреднестатиcтической системы. В этот раз разобрал рекомендации для PostgreSQL 16.
🔹Убедитесь, что настроено логирование ошибок. Задаётся параметром
🔹Для повышения возможностей аудита имеет смысл включить логирование подключений и отключений клиентов. Параметры
🔹Если вам необходимо отслеживать активность в базе данных, то имеет смысл настроить параметр
🔹Для расширенного аудита используйте отдельный модуль pgAudit. Обычно ставится в виде отдельного пакета. Для расширенного контроля за действиями superuser используйте расширение set_user.
🔹Если есть необходимость работать с postgresql в консоли, установите и настройте утилиту sudo, чтобы можно было контролировать и отслеживать действия различных пользователей.
🔹Рекомендованным методом аутентификации соединения является scram-sha-256, а не популярный md5, у которого есть уязвимость (it is vulnerable to packet replay attacks). Настраивается в pg_hba.conf.
🔹Настройте работу СУБД на том сетевом интерфейсе, на котором она будет принимать соединения. Параметр
🔹Если есть необходимость шифровать TCP трафик от и к серверу, то не забудьте настроить TLS. За это отвечает параметр
🔹Для репликации создавайте отдельных пользователей. Не используйте существующих или superuser.
🔹Не забудьте проверить и настроить создание бэкапов. Используйте pg_basebackup для создания полных бэкапов и копии WAL журналов для бэкапа транзакций.
Остальные рекомендации были в основном связаны с ролями, правами доступа и т.д. Это уже особенности конкретной эксплуатации. Не стал о них писать.
Сам файл с рекомендациями живёт тут. Для доступа нужна регистрация.
#cis #postgresql
- Nginx
- MySQL 5.7
- Apache 2.4
- Debian 11
- Docker
- Ubuntu 22.04 LTS
Основная проблема этих рекомендаций - они составлены в огромные pdf книги, иногда до 800 страниц и покрывают очень широкий вектор атак. Выбрать из них то, что вам нужно, довольно хлопотно. Я выделяю основные рекомендации, которые стоит учесть при базовом использовании стреднестатиcтической системы. В этот раз разобрал рекомендации для PostgreSQL 16.
🔹Убедитесь, что настроено логирование ошибок. Задаётся параметром
log_destination
. По умолчанию пишет в системный поток stderr. Считается, что это ненадёжный способ, поэтому рекомендуется отдельно настроить logging_collector
и отправлять логи через него. По умолчанию он отключен. Если настроено сохранение логов в файлы, то не забыть закрыть доступ к ним и настроить ротацию средствами postgresql (log_truncate_on_rotation
, log_rotation_age
и т.д.)🔹Для повышения возможностей аудита имеет смысл включить логирование подключений и отключений клиентов. Параметры
log_connections
и log_disconnections
. По умолчанию отключено. 🔹Если вам необходимо отслеживать активность в базе данных, то имеет смысл настроить параметр
log_statement
. Значение ddl
позволит собирать информацию о действиях CREATE, ALTER, DROP. 🔹Для расширенного аудита используйте отдельный модуль pgAudit. Обычно ставится в виде отдельного пакета. Для расширенного контроля за действиями superuser используйте расширение set_user.
🔹Если есть необходимость работать с postgresql в консоли, установите и настройте утилиту sudo, чтобы можно было контролировать и отслеживать действия различных пользователей.
🔹Рекомендованным методом аутентификации соединения является scram-sha-256, а не популярный md5, у которого есть уязвимость (it is vulnerable to packet replay attacks). Настраивается в pg_hba.conf.
🔹Настройте работу СУБД на том сетевом интерфейсе, на котором она будет принимать соединения. Параметр
listen_addresses
, по умолчанию указан только localhost. Если используется внешний сетевой интерфейс, не забудьте ограничить к нему доступ средствами firewall.🔹Если есть необходимость шифровать TCP трафик от и к серверу, то не забудьте настроить TLS. За это отвечает параметр
hostssl
в pg_hba.conf и параметры ssl
, ssl_cert_file
, ssl_key_file
в postgresql.conf. Поддерживается работа с self-signed сертификатами.🔹Для репликации создавайте отдельных пользователей. Не используйте существующих или superuser.
🔹Не забудьте проверить и настроить создание бэкапов. Используйте pg_basebackup для создания полных бэкапов и копии WAL журналов для бэкапа транзакций.
Остальные рекомендации были в основном связаны с ролями, правами доступа и т.д. Это уже особенности конкретной эксплуатации. Не стал о них писать.
Сам файл с рекомендациями живёт тут. Для доступа нужна регистрация.
#cis #postgresql
👍89👎3
Посмотрел вчера свежий обзор домашней лаборатории известного англоязычного IT блоггера Techno Tim:
▶️ HomeLab Hardware Tour! (Late 2023)
Я люблю подобный контент, потому что мне в принципе нравится идея домашней серверной. Причем не из практических соображений, а чисто как хобби. По кайфу со всем этим разбираться. Объективно, мне это не надо. Проще взять в аренду или поставить на colo один нормальный сервер, а домой бэкапы забирать. Но в своём доме в бойлерной выделил угол под полноценную стойку со свободной стеной рядом. Подвёл туда электричество и свёл все ethernet кабели с рабочих мест и телевизоров в доме. Всё на проводах сделал. На первый взгляд кажется, что и wifi не нужен. Обходимся без него. У всех на смартфонах быстрый инет, а техника на проводах.
В видео больше всего понравилась идея со стеной. Удобно сделано. Можно крепить туда всё, что угодно. Весь негабарит, который в стойке будет просто валяться на полках. Также понравилась идея с кластером на Intel NUC и его расположение в стойке. Для домашних тестовых лабораторий, как по мне, идеальное решение, которое не шумит и не потребляет лишнее электричество. Подойдут любые неттопы.
Всё это приличных денег сейчас стоит, поэтому не понятно, когда будет реализовано. Большой нужды нет, поэтому свободные средства уходят на другие нужды. Баню хочется сильнее, чем серверную стойку. Но надо как-то совмещать, а то откладывать можно бесконечно.
А у вас есть своя домашняя серверная? Хоть какая. Если есть желание и возможность, то покажите фотки. Интересно посмотреть.
#видео
▶️ HomeLab Hardware Tour! (Late 2023)
Я люблю подобный контент, потому что мне в принципе нравится идея домашней серверной. Причем не из практических соображений, а чисто как хобби. По кайфу со всем этим разбираться. Объективно, мне это не надо. Проще взять в аренду или поставить на colo один нормальный сервер, а домой бэкапы забирать. Но в своём доме в бойлерной выделил угол под полноценную стойку со свободной стеной рядом. Подвёл туда электричество и свёл все ethernet кабели с рабочих мест и телевизоров в доме. Всё на проводах сделал. На первый взгляд кажется, что и wifi не нужен. Обходимся без него. У всех на смартфонах быстрый инет, а техника на проводах.
В видео больше всего понравилась идея со стеной. Удобно сделано. Можно крепить туда всё, что угодно. Весь негабарит, который в стойке будет просто валяться на полках. Также понравилась идея с кластером на Intel NUC и его расположение в стойке. Для домашних тестовых лабораторий, как по мне, идеальное решение, которое не шумит и не потребляет лишнее электричество. Подойдут любые неттопы.
Всё это приличных денег сейчас стоит, поэтому не понятно, когда будет реализовано. Большой нужды нет, поэтому свободные средства уходят на другие нужды. Баню хочется сильнее, чем серверную стойку. Но надо как-то совмещать, а то откладывать можно бесконечно.
А у вас есть своя домашняя серверная? Хоть какая. Если есть желание и возможность, то покажите фотки. Интересно посмотреть.
#видео
YouTube
HomeLab Hardware Tour! (Late 2023)
My Late 2023 Server Rack and HomeLab tour! I've upgraded, replaced, added, and consolidated quite a bit since my last tour! New servers, new networking, UPS, cabling, power management, and more new tech on the wall!
Be sure to check out the services tour!…
Be sure to check out the services tour!…
👍83👎3
Решил собрать в единый список известные мне бесплатные курсы и материалы, которые можно посоветовать для базового изучения тем, кто хочет начать движение в сторону системного администрирования Linux и DevOps от простого к сложному.
🎓 Базовое администрирование Linux:
▪️ Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️ Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️ Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️ Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️ Администрирование базового уровня (LPIC-1) - курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.
🎓 Сети:
▪️ Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей. Написано, как я понимаю, энтузиастами-сетевиками из подкаста Linkmeup.
▪️ Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️ Основы документирования сетей — серия уроков на youtube по документированию сетей.
🎓 GIT:
▪️ Git для начинающих — бесплатный курс по основам от Слёрм.
▪️ Oh My Git! — одна из самых известных и популярных игр на тему изучения Git.
🎓 Базы данных:
▪️ Введение в базы данных - бесплатный курс на Stepik.
▪️ Интерактивный тренажер по SQL - тоже курс на Stepik.
🎓 DevOps:
▪️ 90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️ Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️ Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера.
🎓 Docker:
▪️ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪️ Play-with-docker - онлайн тренажер для изучения Docker.
🎓 Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков - там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s - онлайн платформа для изучения Kubernetes.
Это всё, что нашёл более ли менее целостное и полезное. Если есть чем дополнить, поделитесь в комментариях. Я публикацию буду обновлять и в будущем ссылаться на неё.
#обучение #подборка
🎓 Базовое администрирование Linux:
▪️ Основы GNU/Linux и подготовка к RHCSA — автор в качестве хобби создаёт хорошие курсы для новичков. Причём как в текстовом виде, так и в виде записанных уроков. Качество материала высокое.
▪️ Базовое администрирование Linux-серверов — бесплатный курс по основам от Слёрм.
▪️ Введение в Linux — большой и масштабный бесплатный курс по Linux на платформе Stepik.
▪️ Администрирование Linux — совместный курс в виде лекций на youtube от команды VK Team на базе МФТИ.
▪️ Администрирование базового уровня (LPIC-1) - курс на youtube от известного Семаева Кирилла, который к сожалению больше не в состоянии записывать курсы.
🎓 Сети:
▪️ Сети для самых маленьких — очень качественный, структурированный материал по сетям от самых основ до более сложных вещей. Написано, как я понимаю, энтузиастами-сетевиками из подкаста Linkmeup.
▪️ Компьютерные сети, Климанов М.М., Компьютерные сети, учебный курс, Созыкин Андрей — база по сетям от преподавателей МФТИ.
▪️ Основы документирования сетей — серия уроков на youtube по документированию сетей.
🎓 GIT:
▪️ Git для начинающих — бесплатный курс по основам от Слёрм.
▪️ Oh My Git! — одна из самых известных и популярных игр на тему изучения Git.
🎓 Базы данных:
▪️ Введение в базы данных - бесплатный курс на Stepik.
▪️ Интерактивный тренажер по SQL - тоже курс на Stepik.
🎓 DevOps:
▪️ 90DaysOfDevOps — сборник из 90 шагов, разбитых на 90 дней для развития в области DevOps. Язык материала - английский.
▪️ Как стать DevOps Инженером с Нуля, что учить и в каком порядке —интересное видео от человека, который вкатился в DevOps в 30+ лет. Рассказывает свой опыт.
▪️ Онлайн тренажёры от RedHat — интерактивные уроки, где воспроизводят полностью рабочую среду разработчика или devops инженера.
🎓 Docker:
▪️ Основы Docker - хорошее обучающее видео по Docker для новичков.
▪️ Play-with-docker - онлайн тренажер для изучения Docker.
🎓 Kubernetes:
▪️ Полный видеокурс по Kubernetes из 22 обучающих уроков - там вообще всё от нуля до мониторинга и деплоя приложений.
▪️ Play-with-k8s - онлайн платформа для изучения Kubernetes.
Это всё, что нашёл более ли менее целостное и полезное. Если есть чем дополнить, поделитесь в комментариях. Я публикацию буду обновлять и в будущем ссылаться на неё.
#обучение #подборка
👍242👎5
С памятью в Linux всё непросто. Я неоднократно делал заметки по этой теме. В конце будет тематический список постов со ссылками. А сейчас хотел упомянуть любопытный сайт:
⇨ https://www.linuxatemyram.com
Забавно сделано. Кто-то решил раз и навсегда расписать особенности работы Linux с оперативной памятью, чтобы не объяснять одно и то же. Собственно, эту ссылку я и увидел в комментариях к какой-то статье на хабре по этой теме. Небольшой перевод оттуда.
🟢Что вообще происходит?
Linux использует свободную память для кэширования дисковых операций. Это создаёт впечатления, что свободной памяти нет, но это не так.
🟢Зачем он это делает?
Кэширование увеличивает производительность и отзывчивость системы. Ни одного минуса в таком подходе нет, кроме одного - это сбивает с толку новичков. Приложения получают всю необходимую для их работы память.
🟢Что произойдёт, если запустить ещё больше программ?
Если вашим программам понадобится память, они просто получат её из занятой под дисковый кэш. Кэш моментально отдаёт занятую память. Реальной нехватки памяти не возникнет.
🟢Нужно ли добавить swap?
Нет, под кэш уходит только та память, что в данный момент свободна. Она не связана со swap. Если приложениям нужна дополнительная память, занятая под кэш, они берут её там, но не уходят в swap.
🟢Как мне отключить дисковый кэш?
Вы не сможете отключить подобное кэширование. Единственная причина, по которой может появиться подобное желание - ошибочное мнение о том, что память расходуется ненадлежащим образом, а приложениям её не хватает. На самом деле этот кэш ускоряет работу приложений, поэтому отключать его нет никаких оснований. Тем не менее, если вы захотите быстро очистить часть оперативной памяти, занятой кэшем для каких-то своих задач, то сможете сделать это командой:
🟢Почему top и free показывают, что вся оперативная память используется, если это не так?
Это просто разница в терминологии. И вы, и Linux согласны с тем, что память, занимаемая приложениями, является "используемой", в то время как память, которая ни для чего не используется, является "свободной". Но как вы назовёте память, которая в данный момент используется для чего-то, но все еще может быть доступна приложениям? Вы можете считать эту память "свободной (free)" и/или "доступной (available)". Linux же считает ее "используемой (used)", но также и "доступной (available)".
🟢Как мне узнать, сколько у меня на самом деле свободной оперативной памяти?
Запустите утилиту:
Если посмотреть на столбец free, то покажется, что свободной памяти не осталось. Но это не так. На самом деле для приложений доступно 792 MiB, а под кэш и буфферы занято 855 MiB, большая часть из которой может быть выделена для приложений. То есть у вас реально занято примерно 50% памяти и столько же доступно/свободно.
На самом деле простое и доступное объяснение. Ссылочку можно сохранить для друга, который не понимает, как Linux использует память. Для него памяти чем больше, тем лучше. То есть лишней она не бывает. За скобками осталась тема того, как определить реальную используемую память приложением или процессом. Для этого тоже можно отдельный сайт открыть. Я попытался объяснить эту тему в заметке про pmap.
◽Уменьшение или увеличение ram на ходу
◽Анализ использования памяти с помощью pmap
◽Кто и как использует swap (скрипт для просмотра)
🔥Использование оперативной памяти программами (скрипт)
#linux
⇨ https://www.linuxatemyram.com
Забавно сделано. Кто-то решил раз и навсегда расписать особенности работы Linux с оперативной памятью, чтобы не объяснять одно и то же. Собственно, эту ссылку я и увидел в комментариях к какой-то статье на хабре по этой теме. Небольшой перевод оттуда.
🟢Что вообще происходит?
Linux использует свободную память для кэширования дисковых операций. Это создаёт впечатления, что свободной памяти нет, но это не так.
🟢Зачем он это делает?
Кэширование увеличивает производительность и отзывчивость системы. Ни одного минуса в таком подходе нет, кроме одного - это сбивает с толку новичков. Приложения получают всю необходимую для их работы память.
🟢Что произойдёт, если запустить ещё больше программ?
Если вашим программам понадобится память, они просто получат её из занятой под дисковый кэш. Кэш моментально отдаёт занятую память. Реальной нехватки памяти не возникнет.
🟢Нужно ли добавить swap?
Нет, под кэш уходит только та память, что в данный момент свободна. Она не связана со swap. Если приложениям нужна дополнительная память, занятая под кэш, они берут её там, но не уходят в swap.
🟢Как мне отключить дисковый кэш?
Вы не сможете отключить подобное кэширование. Единственная причина, по которой может появиться подобное желание - ошибочное мнение о том, что память расходуется ненадлежащим образом, а приложениям её не хватает. На самом деле этот кэш ускоряет работу приложений, поэтому отключать его нет никаких оснований. Тем не менее, если вы захотите быстро очистить часть оперативной памяти, занятой кэшем для каких-то своих задач, то сможете сделать это командой:
echo 3 | sudo tee /proc/sys/vm/drop_caches
🟢Почему top и free показывают, что вся оперативная память используется, если это не так?
Это просто разница в терминологии. И вы, и Linux согласны с тем, что память, занимаемая приложениями, является "используемой", в то время как память, которая ни для чего не используется, является "свободной". Но как вы назовёте память, которая в данный момент используется для чего-то, но все еще может быть доступна приложениям? Вы можете считать эту память "свободной (free)" и/или "доступной (available)". Linux же считает ее "используемой (used)", но также и "доступной (available)".
🟢Как мне узнать, сколько у меня на самом деле свободной оперативной памяти?
Запустите утилиту:
# free -m
total used free shared buff/cache available
Mem: 1504 1491 13 0 855 792
Swap: 2047 6 2041
Если посмотреть на столбец free, то покажется, что свободной памяти не осталось. Но это не так. На самом деле для приложений доступно 792 MiB, а под кэш и буфферы занято 855 MiB, большая часть из которой может быть выделена для приложений. То есть у вас реально занято примерно 50% памяти и столько же доступно/свободно.
На самом деле простое и доступное объяснение. Ссылочку можно сохранить для друга, который не понимает, как Linux использует память. Для него памяти чем больше, тем лучше. То есть лишней она не бывает. За скобками осталась тема того, как определить реальную используемую память приложением или процессом. Для этого тоже можно отдельный сайт открыть. Я попытался объяснить эту тему в заметке про pmap.
◽Уменьшение или увеличение ram на ходу
◽Анализ использования памяти с помощью pmap
◽Кто и как использует swap (скрипт для просмотра)
🔥Использование оперативной памяти программами (скрипт)
#linux
👍147👎3
Я не раз поднимал на канале тему видеонаблюдения, преимущественно бесплатного и на Linux. При этом всё время обходил стороной старый российский проект Xeoma, у которого давняя история (с 2004 года) и много хороших отзывов. Я просто сам ни разу с ним не сталкивался, нигде не видел и не настраивал. А это один из старых серверов, у которого очень давно есть версия под Linux.
Я лично настраивал программные сервера видеонаблюдения от брендов LTV и Линия, а настроенных видел ещё больше. В целом, не могу сказать что-то плохое про кого-то из них. Всё, что касается базового видеонаблюдения, работает нормально плюс-минус у всех. Конкретно к LTV и Линии у меня претензий нет. Всё это был софт на Windows. Сейчас я знаю, что Линия активно развивает свой сервер на Linux.
У Xeoma есть сервер видеонаблюдения под Linux (в том числе под архитектуру ARM) и Android(❗️). Причём как с графической оболочкой, так и без. Если устанавливать на сервер с графической оболочкой, там же будет установлен и клиент для настройки и управления. Если сервер без графики, то ставится только серверная часть, а клиент в любое другое место, например на систему с ОС Windows или на смартфон. Версии ОС клиента и сервера могут не совпадать.
Сервер распространяется в формате AppImage, то есть одиночный файл с расширением
У Xeoma есть бесплатная версия с ограниченной функциональностью. Основное ограничение - только 4 камеры для записи в архив и хранение в архиве - 5 дней. Подключать и просматривать в режиме реального времени можно сколько угодно. То есть это вариант для небольшой дачи или квартиры. Для доступа к своему серверу можно использовать сервис Ретранслятор. Подробно возможности бесплатной версии описаны в статье.
Ограничения бесплатной версии так себе, есть варианты и получше. А написал я заметку в первую очередь из-за того, что есть хороший, проверенный временем сервер под Linux, стоимость лицензий (бессрочных) низкая. Навскидку, ниже чем у известных конкурентов. При этом имеются все возможности, что обычно хотят получить от наблюдения в настоящее время: видеоаналитика и интеллектуальная обработка. А это в том числе: распознавание номеров, лиц, настроения и возраста людей, парковочных мест, оставленных сумок и многое другое.
Думаю, в комментариях найдётся много тех, кто использует данный сервер. Я постоянно видел его упоминание.
#видеонаблюдение #отечественное
Я лично настраивал программные сервера видеонаблюдения от брендов LTV и Линия, а настроенных видел ещё больше. В целом, не могу сказать что-то плохое про кого-то из них. Всё, что касается базового видеонаблюдения, работает нормально плюс-минус у всех. Конкретно к LTV и Линии у меня претензий нет. Всё это был софт на Windows. Сейчас я знаю, что Линия активно развивает свой сервер на Linux.
У Xeoma есть сервер видеонаблюдения под Linux (в том числе под архитектуру ARM) и Android(❗️). Причём как с графической оболочкой, так и без. Если устанавливать на сервер с графической оболочкой, там же будет установлен и клиент для настройки и управления. Если сервер без графики, то ставится только серверная часть, а клиент в любое другое место, например на систему с ОС Windows или на смартфон. Версии ОС клиента и сервера могут не совпадать.
Сервер распространяется в формате AppImage, то есть одиночный файл с расширением
.app
. Установка простая и быстрая, описана в документации. Просто запускаем сервер с ключами и подключаемся к нему клиентом для настройки. У Xeoma есть бесплатная версия с ограниченной функциональностью. Основное ограничение - только 4 камеры для записи в архив и хранение в архиве - 5 дней. Подключать и просматривать в режиме реального времени можно сколько угодно. То есть это вариант для небольшой дачи или квартиры. Для доступа к своему серверу можно использовать сервис Ретранслятор. Подробно возможности бесплатной версии описаны в статье.
Ограничения бесплатной версии так себе, есть варианты и получше. А написал я заметку в первую очередь из-за того, что есть хороший, проверенный временем сервер под Linux, стоимость лицензий (бессрочных) низкая. Навскидку, ниже чем у известных конкурентов. При этом имеются все возможности, что обычно хотят получить от наблюдения в настоящее время: видеоаналитика и интеллектуальная обработка. А это в том числе: распознавание номеров, лиц, настроения и возраста людей, парковочных мест, оставленных сумок и многое другое.
Думаю, в комментариях найдётся много тех, кто использует данный сервер. Я постоянно видел его упоминание.
#видеонаблюдение #отечественное
👍100👎8
У меня до сих пор осталось некоторое количество серверов под управлением Centos 7. Совсем уже отвык от этой системы. Последние пару лет все новые сервера только Debian. Соответственно, они уже почти везде. Где-то делал миграцию с Centos на Debian, но Centos всё равно остались. Всё работает, обновления приходят, поэтому нет смысла суетиться и делать лишнюю работу.
Поддержка Centos 7 закончится 30 июня 2024 года. В принципе, ещё есть время подготовиться. Но тут основной вопрос, на какую систему в итоге перейти. Когда конвертировал 8-ю версию, как раз пару лет назад, выбрал Oracle Linux и сконвертировал системы в него. Думаю, что ошибся, надо было на AlmaLinux переходить. В тот момент не был уверенности, что этот форк получит хорошее развитие. К примеру, анонсированный VzLinux от Virtuozzo в итоге быстро стух и больше не развивается. По факту AlmaLinux стал наиболее распространённым форком. А вы что думаете на этот счёт?
Если решите в итоге Centos 7 сконвертировать в AlmaLinux, то у них есть хорошая инструкция, как получить сразу актуальную 9-ю версию. Я проверил, получилось без проблем. Я скорее всего на этом варианте остановлюсь. Только обязательно тестируйте такое обновление, так как 9-я версия требует дополнительный набор процессорных команд, обозначаемых как x86-64-v2 (SSE4.2, SSSE3, POPCNT и возможно что-то ещё). Иногда может потребоваться дополнительная настройка виртуальных машин. Хорошо, если гипервизор свой. А если арендованный, то обновление не установится. Не пройдёт проверку требований к железу. В PVE достаточно тип процессора с
#centos #almalinux
Поддержка Centos 7 закончится 30 июня 2024 года. В принципе, ещё есть время подготовиться. Но тут основной вопрос, на какую систему в итоге перейти. Когда конвертировал 8-ю версию, как раз пару лет назад, выбрал Oracle Linux и сконвертировал системы в него. Думаю, что ошибся, надо было на AlmaLinux переходить. В тот момент не был уверенности, что этот форк получит хорошее развитие. К примеру, анонсированный VzLinux от Virtuozzo в итоге быстро стух и больше не развивается. По факту AlmaLinux стал наиболее распространённым форком. А вы что думаете на этот счёт?
Если решите в итоге Centos 7 сконвертировать в AlmaLinux, то у них есть хорошая инструкция, как получить сразу актуальную 9-ю версию. Я проверил, получилось без проблем. Я скорее всего на этом варианте остановлюсь. Только обязательно тестируйте такое обновление, так как 9-я версия требует дополнительный набор процессорных команд, обозначаемых как x86-64-v2 (SSE4.2, SSSE3, POPCNT и возможно что-то ещё). Иногда может потребоваться дополнительная настройка виртуальных машин. Хорошо, если гипервизор свой. А если арендованный, то обновление не установится. Не пройдёт проверку требований к железу. В PVE достаточно тип процессора с
kvm64
заменить на host
. Это актуально для всех форков RHEL9. #centos #almalinux
👍80👎4
У меня дома есть NAS и на всех компах и ноутах подключены сетевые папки. Домашние слабо представляют, как всё это работает. На смартфоне использую TotalCommander с плагином для доступа к тем же сетевым папкам. Жена наверное через TG или VK перекидывает файлы. По-другому вряд ли умеет. Детям это пока не надо.
Есть простое и удобное open source решение для этого вопроса - LocalSend. Поддерживает все операционные системы, в том числе на смартфонах. Это небольшое приложение, которое запускается на определённом порту (53317), принимает входящие соединения и с помощью нескольких методов (описание протокола, в основе поиска Multicast UDP, если не помогает, то POST запрос на все адреса локальной сети) осуществляет поиск таких же серверов в локальной сети. Передача данных осуществляется по протоколу HTTP.
На практике всё это работает автоматически. Приложение под Windows можно поставить, к примеру, через wingwet или скачать portable версию. На смартфоне ставим через Google Play, F-Droid или просто качаем apk. Работает всё в локальной сети, без необходимости каких-то внешних сервисов в интернете. Запускаем на обоих устройствах приложение, они сразу же находят друг друга. Можно передавать файлы. При этом можно на том же компе настроить такой режим, чтобы он автоматом принимал файлы со смартфона и складывал в определённую директорию.
Каждое устройство в приложении можно обозвать своим именем и передавать файлы между ними. Не знаю, где это в работе может пригодиться, но для дома очень удобно. В первую очередь простотой и поддержкой всех платформ. В программе хороший русский язык, пользоваться просто и понятно.
Мне иногда надо сыну передать со своего смартфона из родительского чата информацию от учителя с пояснениями по домашке. Я для этого делал скриншот чата, клал его на NAS, на компе с NAS копировал сыну. Через приложение передать в разы удобнее. Запустил прогу и перекинул на комп с именем СЫН. Всё. Мессенджеров и соц. сетей у него пока нет.
Это приложение, которое я попробовал и сразу развернул на всех устройствах. Жене очень понравилось.
Отдельно отмечу, что приложение написано на языке программирования Dart. Впервые о нём услышал. Сначала показалось, что это типичное приложение на JavaScript под NodeJS. Но смутил небольшой размер. После этого и пошёл смотреть, на чём написано. Оказалось, что этот язык программирования разрабатывает Google как раз для замены JavaScript, взяв от него всё лучшее, но исправив недостатки. В целом, выглядит всё это неплохо.
⇨ Сайт / Исходники
#fileserver
Есть простое и удобное open source решение для этого вопроса - LocalSend. Поддерживает все операционные системы, в том числе на смартфонах. Это небольшое приложение, которое запускается на определённом порту (53317), принимает входящие соединения и с помощью нескольких методов (описание протокола, в основе поиска Multicast UDP, если не помогает, то POST запрос на все адреса локальной сети) осуществляет поиск таких же серверов в локальной сети. Передача данных осуществляется по протоколу HTTP.
На практике всё это работает автоматически. Приложение под Windows можно поставить, к примеру, через wingwet или скачать portable версию. На смартфоне ставим через Google Play, F-Droid или просто качаем apk. Работает всё в локальной сети, без необходимости каких-то внешних сервисов в интернете. Запускаем на обоих устройствах приложение, они сразу же находят друг друга. Можно передавать файлы. При этом можно на том же компе настроить такой режим, чтобы он автоматом принимал файлы со смартфона и складывал в определённую директорию.
Каждое устройство в приложении можно обозвать своим именем и передавать файлы между ними. Не знаю, где это в работе может пригодиться, но для дома очень удобно. В первую очередь простотой и поддержкой всех платформ. В программе хороший русский язык, пользоваться просто и понятно.
Мне иногда надо сыну передать со своего смартфона из родительского чата информацию от учителя с пояснениями по домашке. Я для этого делал скриншот чата, клал его на NAS, на компе с NAS копировал сыну. Через приложение передать в разы удобнее. Запустил прогу и перекинул на комп с именем СЫН. Всё. Мессенджеров и соц. сетей у него пока нет.
Это приложение, которое я попробовал и сразу развернул на всех устройствах. Жене очень понравилось.
Отдельно отмечу, что приложение написано на языке программирования Dart. Впервые о нём услышал. Сначала показалось, что это типичное приложение на JavaScript под NodeJS. Но смутил небольшой размер. После этого и пошёл смотреть, на чём написано. Оказалось, что этот язык программирования разрабатывает Google как раз для замены JavaScript, взяв от него всё лучшее, но исправив недостатки. В целом, выглядит всё это неплохо.
⇨ Сайт / Исходники
#fileserver
👍177👎6
Один из читателей канала давно мне скидывал информацию про скрипт для Zabbix, который отправляет оповещения с графиками в Telegram. Он его сам написал. У меня как-то затерялась эта информация и только сейчас дошли руки посмотреть. Я проверил, всё работает нормально. В целом, таких скриптов немало, я сам пользуюсь и в статье рассказываю про настройку. Тут отличие в том, что он полностью на Bash, в то время как я использую решения, написанные на Python. Вариант с башем лично для мне выглядит более привлекательным.
В принципе, всё описание есть в репозитории и в отдельной статье от автора. Я по ним без проблем настроил. Если раньше уведомления в Telegram не настраивали, то, возможно, придётся повозиться. Там надо бота создать, с токеном ничего не напутать и т.д. Судя по количеству комментариев с вопросами к моей статье по этой теме, у многих не получается быстро с этим разобраться.
Отмечу несколько моментов, с которыми сам столкнулся.
1️⃣ Скрипт по умолчанию пишет лог файл в директорию
2️⃣ Второй момент - когда будете добавлять новый способ оповещений (media type), не забудьте добавить туда шаблоны. По умолчанию они не создаются. Я забыл об этом и не сразу догадался, почему ошибку при отправке через этот тип сообщений получаю.
3️⃣ Для айтема должен существовать график, чтобы он прилетел в оповещения. Иначе графика не будет. Если что-то не будет получаться, то почитайте комментарии к статье. Там автор подробно объясняет нюансы и показывает, как дебажить отсутствие графиков
#zabbix
В принципе, всё описание есть в репозитории и в отдельной статье от автора. Я по ним без проблем настроил. Если раньше уведомления в Telegram не настраивали, то, возможно, придётся повозиться. Там надо бота создать, с токеном ничего не напутать и т.д. Судя по количеству комментариев с вопросами к моей статье по этой теме, у многих не получается быстро с этим разобраться.
Отмечу несколько моментов, с которыми сам столкнулся.
1️⃣ Скрипт по умолчанию пишет лог файл в директорию
/usr/lib/zabbix/alertscripts
, владельцем которой является root, соответственно у скрипта нет прав на запись туда. Либо сделайте владельцем пользователя Zabbix, либо вынесите лог куда-то в другое место. 2️⃣ Второй момент - когда будете добавлять новый способ оповещений (media type), не забудьте добавить туда шаблоны. По умолчанию они не создаются. Я забыл об этом и не сразу догадался, почему ошибку при отправке через этот тип сообщений получаю.
3️⃣ Для айтема должен существовать график, чтобы он прилетел в оповещения. Иначе графика не будет. Если что-то не будет получаться, то почитайте комментарии к статье. Там автор подробно объясняет нюансы и показывает, как дебажить отсутствие графиков
#zabbix
👍119👎2