Частенько для установки какого-то софта в линукс, предлагают использовать какой-то snap.
snap install chezmoi
Когда snap появился я как-то скептически к нему отнесся. Мол, чо за хуйня, есть же apt и еже подобные коробочные варианты. Больше наверное меня беспокоило что засрётся система какой-то неведомой шляпой.
ㅤ
Время шло и snap появился в коробке. Всё больше вкусных репок стало инсталиться именно через эту штуковину. Пришлось лезть в нору и знакомиться.
Короче snap это пакетный менеджер, кто бы мог подумать.
Фишка snap — пакеты работают на любом дистрибутиве Ubuntu, Fedora, Arch, Debian и др. без необходимости адаптации под конкретный дистрибутив.
То есть создается один пакет с софтиной и он подходит под все дистрибутивы. Красота!
Получается что-то вроде докер контейнера, который заработает на любой машине.
А еще такой софт запускается в песочнице. Тут безопасники сразу ставят плюсик.
А еще установленные пакеты автоматически обновляются в фоне и они всегда актуальны.
А еще snap пакет содержит все зависимости и библиотеки, которые требуются для запуска софтины.
То есть твой линукс не будет загажен файлами, библиотеками, доп-софтом и т.п. Всё это уже есть в рамках пакета. Никаких конфликтов, никаких танцев с бубном. Да, танцы порой случаются, но редко.
Ну ты понял… а когда применять apt, а когда snap?
— для приложений, которые часто обновляются (камень в гитлаб).
— упрощённого развёртывания на разных дистрибутивах.
— обеспечения безопасности через контейнеризацию.
— системных компонентов и пакетов, тесно интегрированных с операционной системой.
— софта, требующего максимальной производительности.
Вот и всё! Не такой snap и страшный. Вечерком еще покажу кое-что интересное (не письку).
tags: #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
21 69 19
Бас мазафака фактор! Ща жопы сгорят...
Где бы я ни работал, я стараюсь завязать какой-то кусок именно на себя. В идеале полностью подмять и пустить корни во все процессы связанные с той деятельностью, которой я занимаюсь.
ㅤ
Если на пальцах, к примеру в компании изначально доминирует terraform и golden image через packer. Я прихожу, вижу этот пиздец. Почему пиздец? Да потому, что это пиздец. Но совладать с процессами на начальном этапе я не могу, потому, что я новенький и не мне диктовать условия. К моим предложениям перейти на ansible и сделать динамические inventory для теры, относятся скептически. Хули? Смириться? Нет уж.
Я запиливаю в свое свободное время всю эту связку, делаю пайплайны, кнопку, тесты, короче делаю универсальное решение, которое работает. А не то, что существует у них сейчас. Презентую его CTO в личной беседе. В 99.9999% CTO дает мне зеленый свет на внедрение. А старье с golden image выбрасываем на парашу.
Продавил. Молодец. Но остается хуита, когда коллеги из отдела просто в недоумении, типа хуй с горы пришел, чото новое интегрировал, CTO поддержал, да как так-то? Мы тут сидели баблишко, получали, а теперь надо чему-то новому учиться. Да блядь, ребята! Придется играть по моим правилам, либо идите на хуй!
Дальше ситуация развивается стремительно, коллеги разбираться в этом не хотят и я все больше и больше подминаю инфраструктуру под себя, становлюсь единственным человеком, который во всем этом шарит и умеет управлять. Да, я предлагаю показать как все это работает. У меня есть написанная документация, она доступна для всех желающих. Но желающих обычно нет. Иииии. Возникает тот самый бас фактор.
Грубо говоря, если я хуй забью, то инфраструктуру поддерживать никто не сможет какое-то время, а возможно совсем не сможет.
Я не прав? Хуй там, я прав. Я всегда иду на встречу и делюсь знаниями, при условии, что люди хотят эти знания получить. Но обычно никто не хочет покидать зону комфорта. Соответственно имеем, то что имеем.
Сидеть в говне я не люблю, по этому, всегда, ВСЕГДА выпиливаю гавно и ввожу новые процессы. Хоть это новая робота, хоть старая. Да я уверен, что продавил бы даже яндекс с гуглом, хотя у них надеюсь и без меня все заебись.
Завязав все на себя, легко можно манипулировать своим повышением до начальника отдела, поднятием ЗП и прочее. Главное подходить к этому с умом, а не жопой.
Сейчас со мной работает человек и он действительно вникает в то, что я внедрил. Я спокойно сходил в отпуск на месяц и нихуя не уебалось. Он умеет управлять моим заводом. Я отдал ему поле под цех, он построил себе небольшой заводик и успешно им владеет. Я в него не лезу, он создал свой бас фактор и завязал его на себя. Молодец. А не лезу я, потому, что мне неинтересно. А то что мне неинтересно идет нахуй.
Да я могу сходить на заводик коллеги, чото там посмотреть, потыкать, но как все это устроено я знать не хочу. Даже когда он уйдет в отпуск и заводик наебнется медным тазом, я за час разберусь и починю все что нужно, потому, что коллега ведет документацию и частенько рассказывает на синках, что и как у него происходит.
Короче хуй пойми, бизнес не любит бас фактора, а мы любим бас фактор.
Любим по причине — этим можно манипулировать и выбивать себе хорошие должности и ЗП.
А как ты считаешь?
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Где бы я ни работал, я стараюсь завязать какой-то кусок именно на себя. В идеале полностью подмять и пустить корни во все процессы связанные с той деятельностью, которой я занимаюсь.
ㅤ
Если на пальцах, к примеру в компании изначально доминирует terraform и golden image через packer. Я прихожу, вижу этот пиздец. Почему пиздец? Да потому, что это пиздец. Но совладать с процессами на начальном этапе я не могу, потому, что я новенький и не мне диктовать условия. К моим предложениям перейти на ansible и сделать динамические inventory для теры, относятся скептически. Хули? Смириться? Нет уж.
Я запиливаю в свое свободное время всю эту связку, делаю пайплайны, кнопку, тесты, короче делаю универсальное решение, которое работает. А не то, что существует у них сейчас. Презентую его CTO в личной беседе. В 99.9999% CTO дает мне зеленый свет на внедрение. А старье с golden image выбрасываем на парашу.
Продавил. Молодец. Но остается хуита, когда коллеги из отдела просто в недоумении, типа хуй с горы пришел, чото новое интегрировал, CTO поддержал, да как так-то? Мы тут сидели баблишко, получали, а теперь надо чему-то новому учиться. Да блядь, ребята! Придется играть по моим правилам, либо идите на хуй!
Дальше ситуация развивается стремительно, коллеги разбираться в этом не хотят и я все больше и больше подминаю инфраструктуру под себя, становлюсь единственным человеком, который во всем этом шарит и умеет управлять. Да, я предлагаю показать как все это работает. У меня есть написанная документация, она доступна для всех желающих. Но желающих обычно нет. Иииии. Возникает тот самый бас фактор.
Грубо говоря, если я хуй забью, то инфраструктуру поддерживать никто не сможет какое-то время, а возможно совсем не сможет.
Я не прав? Хуй там, я прав. Я всегда иду на встречу и делюсь знаниями, при условии, что люди хотят эти знания получить. Но обычно никто не хочет покидать зону комфорта. Соответственно имеем, то что имеем.
Сидеть в говне я не люблю, по этому, всегда, ВСЕГДА выпиливаю гавно и ввожу новые процессы. Хоть это новая робота, хоть старая. Да я уверен, что продавил бы даже яндекс с гуглом, хотя у них надеюсь и без меня все заебись.
Завязав все на себя, легко можно манипулировать своим повышением до начальника отдела, поднятием ЗП и прочее. Главное подходить к этому с умом, а не жопой.
Сейчас со мной работает человек и он действительно вникает в то, что я внедрил. Я спокойно сходил в отпуск на месяц и нихуя не уебалось. Он умеет управлять моим заводом. Я отдал ему поле под цех, он построил себе небольшой заводик и успешно им владеет. Я в него не лезу, он создал свой бас фактор и завязал его на себя. Молодец. А не лезу я, потому, что мне неинтересно. А то что мне неинтересно идет нахуй.
Да я могу сходить на заводик коллеги, чото там посмотреть, потыкать, но как все это устроено я знать не хочу. Даже когда он уйдет в отпуск и заводик наебнется медным тазом, я за час разберусь и починю все что нужно, потому, что коллега ведет документацию и частенько рассказывает на синках, что и как у него происходит.
Короче хуй пойми, бизнес не любит бас фактора, а мы любим бас фактор.
Любим по причине — этим можно манипулировать и выбивать себе хорошие должности и ЗП.
А как ты считаешь?
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
55 112 24
Попросил сегодня на собесе кандидата зачистить nginx логи. Кандидат на роль девопс (мидл) на вилку 200-250к.
Зачистил —
rm /var/log/nginx/access.log
Мде блядь… это будет интересно!
ㅤ
Задаю следующий вопрос — Серёжа, а почему файл
access.log
пропал и больше не появляется? Nginx то в данный момент работает, запросы на него идут.Где карта Билли? Нам нужна карта!
Внятного ответа не получил, что-то на уровне — он появится спустя сутки, когда logrotate отработает. Дада… будем сутки без логов сидеть. А если нет logrotate?
Короче, если хочешь зачистить файл, есть несколько безопасных способов.
Первый способ:
sudo > /var/log/nginx/access.log
Тут мы перезаписываем лог-файл с помощью оператора редиректа «>».
Это безопасно для процесса, который продолжает записывать в лог, поскольку процесс будет продолжать писать в тот же файл, а его дескриптор не изменится.
Ключевая фраза — дескриптор не изменится. А когда ты этот файл через
rm
ёбнул само собой дескриптор потерялся и nginx охуевает.Второй способ:
sudo truncate -s 0 /var/log/nginx/access.log
-s 0 =
обрезать файл до нулевого размера. В этом случае дескриптор также не будет потерян и nginx продолжит писать непотребности.Третий способ:
Некоторые сервисы, например, apache или nginx, позволяют отправить сигнал процессу для того, чтобы он закрыл текущий лог-файл и открыл новый (сигнал USR1). В этом случае процесс продолжит работать, но логи будут записываться в новый файл.
sudo kill -USR1 <pid>
Где
<pid> = PID
процесса. После выполнения этой команды файл с логов превратится в access.log.1
и откроется новый access.log
.Четвертый вариант — тот самый logrotate, но его рассматривать не будем.
Я пользуюсь первым вариантом с символом перенаправления «>». Стильно, модно, молодежно!
Короче сначала думаем головой, а потом уже пользуемся тяжелой артиллерией вроде
rm
и т.п.А какие способы обнуления знаешь ты? Про алкашку не пишите, этот способ знают все.
tags: #рабочиебудни #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
14 165
Привет, друзья, вопрос из зала от коллеги. Кто что думает? Велком в комменты!
ㅤ
Вопрос:
tags: #рабочиебудни
—
🔔 @bashdays➡️ @gitgate
ㅤ
Вопрос:
Сейчас занимаюсь задачей по миграции/синхронизации файлового сервера предприятия.
Суть проблемы в следующем: Вся информация сейчас распределена по разным серверам, которые начинают выходить из строя.
Используется Windows Server с DFS, права настроены через Active Directory.
Новый файловый сервер нужно реализовать на базе РЕД ОС.
На этапе планирования столкнулся с рядом вопросов — как лучше организовать процесс миграции, чтобы структура и права доступа остались удобными и управляемыми?
Если у вас будут предложения или потребуется дополнительная информация, с радостью предоставлю! Заранее спасибо за помощь!
tags: #рабочиебудни
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Как я изучал кубер или хуёвой пизде — хуёво везде.
Короче взбрело как-то нашему техдиру засунуть бложек компании в кубер. Бложек на вордпрессе, вся хуйня.
ㅤ
На вопрос — чтобы что? Он же и так нормально крутится, не падает, работает и не трогай!
Ответ очевиден — бизнес приказал, денег нет, но вы держитесь, новогодних премий не будет. Шаблонный набор доширака.
В общем владелец компании где-то с корешами посидел за чаркой сакэ и они ему в уши нассали.
Кубера у нас как ты понял не было. И мне предстояло его внедрять.
О кубере естественно я знал словом — нихуя! Но задача есть, надо делать, ипотека сама себя не оплатит.
Иду на ютуб, смотрю взахлеб все что попадается на эту тему, за сутки сложилось представление что это такое и как его готовить.
Тогда еще было интересно познавать новое, сейчас такого уже нет.
Старым добрым методом «тыка» всё поднял, написал пайплайны, собрал контейнеры, задеплоил. Базу кстати тоже в кубер перетащил, просили же всё туда перенести.
Вся эта поделка была похожа на какой-то обдристанный шалаш подпертый рыхложопными костылями, но всё работало.
Задачу в done, все довольны. Я молодец. Теперь я знаю кубер!
А спустя сутки начались качели. Пользователи начали регулярно получать 500ки, иногда ПОД с базой ПОДъебывал и каким-то образом просто выпадал в осадок. Ну и еще вагон и тележка факапов.
Фиксилось это естественно гуглежом. За неделю более менее все было отлажено, базу по итогу пришлось вытащить из этого комбайна и поселить на отдельном серваке. Опыт!
Но раз в неделю стабильно что-то вылазило новое. Блядь… меня трясти уже начинало когда там что-то ломалось. А еще за каждый инцидент жестко ебали, как медведя. Одним словом — айти.
Любят люди всё усложнять, ну работало оно раньше, нахуй было это трогать. Тем более тащить вордпресс в кубер.
Чуть позже я увидел битрикс в кубе, это отдельный пиздец.
💬 💬 💬
Эт я к чему. Изучив базово технологию по ютубу, я добавил себе в резюме строчку — знания k8s, покидал отклики на ХХру и через пару дней получил оффер. А через 2 недели забыл про этот вордпресс как страшный сон.
Как потом оказалось в новой компании кубер был, но его обслуживали другие дядьки, а в вакансии HRы просто так это написали. Попытались побольше технологий воткнуть видимо.
Если видишь вакансию и какую-то неизвестную тебе технологию — не ссы, кидай отклик, во всем можно разобраться прям по ходу дела. Было бы желание. А возможно там этой технологии вообще нет.
Тем более в новой компании тебя первое время хуй допустят до таких вещей, сначала будешь всё под присмотром делать. Хотя бывают случаи когда в компании один девопс.
Приходишь такой и ты сам себе тимлид и команда в одно рыло. Потом два месяца пытаешься понять, как все устроено и не сломать, то что работает. А из документации .bash_history.
А если на собесе что-то спросили, а ты не знаешь, так и скажи — я хуй знает, слышал, но не тыкал, разберусь короче, не проблема!
Прозрачность в этих делах очень важна, соискатели очень любят когда ты с ними откровенен и тебе похуй.
Сразу ходи с настроением — Не они тебе нужны, а ты им.
Ну и про кубер. Не нужно его поднимать где только можно, он используется точечно, для проектов которые в нём нуждаются. А не потому что это — модно блядь!
А хочешь его изучить, поставь себе под локальные проекты, задеплой туда своего кота, выстави жопой в интернет и ковыряй, правь баги и обслуживай. Чем больше ты его ковыряешь, тем больше он ковыряет тебя.
Но это справедливо для всех технологий.
Если нет желания — хуй ты чему научишься.
Такие дела, мотай на ус и не ссы, всё у тебя получится!
tags: #рабочиебудни
—
🔔 @bashdays➡️ @gitgate
Короче взбрело как-то нашему техдиру засунуть бложек компании в кубер. Бложек на вордпрессе, вся хуйня.
ㅤ
На вопрос — чтобы что? Он же и так нормально крутится, не падает, работает и не трогай!
Ответ очевиден — бизнес приказал, денег нет, но вы держитесь, новогодних премий не будет. Шаблонный набор доширака.
В общем владелец компании где-то с корешами посидел за чаркой сакэ и они ему в уши нассали.
Мол у каждой уважающей себя компании должен быть кубер. Если у тебя нет куба, значит ты лох и компания твоя — гавно!
Кубера у нас как ты понял не было. И мне предстояло его внедрять.
О кубере естественно я знал словом — нихуя! Но задача есть, надо делать, ипотека сама себя не оплатит.
Иду на ютуб, смотрю взахлеб все что попадается на эту тему, за сутки сложилось представление что это такое и как его готовить.
Тогда еще было интересно познавать новое, сейчас такого уже нет.
Старым добрым методом «тыка» всё поднял, написал пайплайны, собрал контейнеры, задеплоил. Базу кстати тоже в кубер перетащил, просили же всё туда перенести.
Вся эта поделка была похожа на какой-то обдристанный шалаш подпертый рыхложопными костылями, но всё работало.
Задачу в done, все довольны. Я молодец. Теперь я знаю кубер!
А спустя сутки начались качели. Пользователи начали регулярно получать 500ки, иногда ПОД с базой ПОДъебывал и каким-то образом просто выпадал в осадок. Ну и еще вагон и тележка факапов.
Фиксилось это естественно гуглежом. За неделю более менее все было отлажено, базу по итогу пришлось вытащить из этого комбайна и поселить на отдельном серваке. Опыт!
Но раз в неделю стабильно что-то вылазило новое. Блядь… меня трясти уже начинало когда там что-то ломалось. А еще за каждый инцидент жестко ебали, как медведя. Одним словом — айти.
Любят люди всё усложнять, ну работало оно раньше, нахуй было это трогать. Тем более тащить вордпресс в кубер.
Чуть позже я увидел битрикс в кубе, это отдельный пиздец.
Эт я к чему. Изучив базово технологию по ютубу, я добавил себе в резюме строчку — знания k8s, покидал отклики на ХХру и через пару дней получил оффер. А через 2 недели забыл про этот вордпресс как страшный сон.
Как потом оказалось в новой компании кубер был, но его обслуживали другие дядьки, а в вакансии HRы просто так это написали. Попытались побольше технологий воткнуть видимо.
Если видишь вакансию и какую-то неизвестную тебе технологию — не ссы, кидай отклик, во всем можно разобраться прям по ходу дела. Было бы желание. А возможно там этой технологии вообще нет.
Тем более в новой компании тебя первое время хуй допустят до таких вещей, сначала будешь всё под присмотром делать. Хотя бывают случаи когда в компании один девопс.
Приходишь такой и ты сам себе тимлид и команда в одно рыло. Потом два месяца пытаешься понять, как все устроено и не сломать, то что работает. А из документации .bash_history.
А если на собесе что-то спросили, а ты не знаешь, так и скажи — я хуй знает, слышал, но не тыкал, разберусь короче, не проблема!
Прозрачность в этих делах очень важна, соискатели очень любят когда ты с ними откровенен и тебе похуй.
Сразу ходи с настроением — Не они тебе нужны, а ты им.
Ну и про кубер. Не нужно его поднимать где только можно, он используется точечно, для проектов которые в нём нуждаются. А не потому что это — модно блядь!
А хочешь его изучить, поставь себе под локальные проекты, задеплой туда своего кота, выстави жопой в интернет и ковыряй, правь баги и обслуживай. Чем больше ты его ковыряешь, тем больше он ковыряет тебя.
Но это справедливо для всех технологий.
Если нет желания — хуй ты чему научишься.
Такие дела, мотай на ус и не ссы, всё у тебя получится!
tags: #рабочиебудни
—
Please open Telegram to view this post
VIEW IN TELEGRAM
7 232
Сегодня 1с начала ругаться на нехватку лицензий. Дело не мое, но начали проверять, и увидели подключение с IP, которого нет в нормативных документах.
🔥 Инцидент. Я немного офигел. Что, откуда? Нужно искать, кто тут такой умный.
Начинаем исследование:
на сервере 1c
Ага, скорее всего windows 10 после обновления переключила сеть в "общедоступные".
По mac определили, что это ASUS. Но может ноут, может комп или wi-fi роутер вредители воткнули в сеть.
Но как ее найти? Сетка не большая, меньше 100 ip, но не будешь же каждый комп и каждое устройство проверять...
Короче, на серваке 1с:
Через 5 минут пользователь звонит, "у меня 1с не работает".
Проверил - точно. Ip не правильно задали. Восстановил, перевел сеть в режим "Частные".
А проблему нехватки лицензий так и не решили. Конец года, вся бухгалтерия пашет. Вот лицензий на всех и не хватает.
Народ, а вы сталкивались с появлением в сети незарегистрированных ip? Как решали проблему?
tags: #networks #рабочиебудни © by Tagd Tagd
—
🔔 @bashdays➡️ @gitgate
Начинаем исследование:
на сервере 1c
ss|grep ip
- Видно, машина работает с 1с.ping ip
- машина не пингуется.nmap -Pn ip
- все порты < 1000 закрыты.Ага, скорее всего windows 10 после обновления переключила сеть в "общедоступные".
arp ip
- показывает macПо mac определили, что это ASUS. Но может ноут, может комп или wi-fi роутер вредители воткнули в сеть.
sudo arping -I enp3s4 ip
- машина пингуется.Но как ее найти? Сетка не большая, меньше 100 ip, но не будешь же каждый комп и каждое устройство проверять...
Короче, на серваке 1с:
sudo iptables -I INPUT -s ip -j REJECT
Через 5 минут пользователь звонит, "у меня 1с не работает".
Проверил - точно. Ip не правильно задали. Восстановил, перевел сеть в режим "Частные".
А проблему нехватки лицензий так и не решили. Конец года, вся бухгалтерия пашет. Вот лицензий на всех и не хватает.
Народ, а вы сталкивались с появлением в сети незарегистрированных ip? Как решали проблему?
tags: #networks #рабочиебудни © by Tagd Tagd
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Верной дорогой идёте товарищи...
ㅤ
Уровень статьи средне-сложный. Я не буду объяснять, как завести пользователя, как прописать ему оболочку, как настроить аутентификацию по ключам. Информации об этом валом.
Сегодня мы рассмотрим как сделать «тупиковую машину». Под ней я понимаю машину, попасть на которую можно через интернет по ssh, но на самой этой машине интернета нет.
Заинтриговал? Мозг немного взорвался? Короче, делаем ssh-прокси.
⁉️ Для чего это нужно?
Это можно использовать для раздачи доступа сторонним пользователям для управления ресурсами внутри сети, для студентов, работающих на удалёнке. (студенты IT - самые агрессивные пользователи).
Короче для минимизации рисков информационной безопасности. Скажу сразу, это не панацея. Инфу/файлы можно таскать через буффер обмена. Но много информации так не передашь.
Поехали!
Понадобится 2 машины: Бастионная (Jump-сервер, ssh-прокси) - машина, которая торчит открытым портом ssh в интернет.
И Тупиковая - машина (возможно виртуалка), с открытым в локалку портом ssh, на которой будет работать пользователь. И у которой нет доступа в инет (закрыт на периметровом маршрутизаторе. Или не прописаны шлюзы.
Основное условие у пользователя не должно быть root, а то сменит IP/MAC, пропишет шлюзы...). (допустим ее локальный ip
С Бастионной машины должен быть доступ к Тупиковой по ssh, внутри локалки.
НА БАСТИОННОЙ МАШИНЕ. (аутентификация по ключам уже настроена, ssh защищена от быстрого перебора, для этой группы пользователей запрещен проброс портов)
1. Заводим пользователя, например, Tagd83j6 с паролем >=20 символов (не пригодится)
2. Добавляем публичный ключ Пользователя. (Он обычно с парольной фразой) в
3. Генерим ключ без пароля для доступа к Тупиковой машине. (лучше ed25519).
4. Домашней папке Tagd83j6 создаем файл типа
НА ТУПИКОВОЙ МАШИНЕ (аутентификация по ключам уже настроена)
1. Заводим пользователя Tagd83j6 с паролем >=20 символов (не пригодится)
2. добавляем публичный ключ(с Бастионной машины. п3) в
Все. Теперь, если на Бастионной машине от root набрать
Сразу должны попасть на Тупиковую машину.
Собственно все.
Аутентификация пользователя производится на Бастионной машине!!!
При подключении к Бастионной машине нас сразу перебрасывает на Тупиковую. На ней есть локалка, но нет интернета.
Вопросы, критика, плюсики приветствуется.
tags: #networks #linux © by Tagd Tagd
—
🔔 @bashdays➡️ @gitgate
идея в стадии разработки и применение в проде пока нежелательно
ㅤ
Уровень статьи средне-сложный. Я не буду объяснять, как завести пользователя, как прописать ему оболочку, как настроить аутентификацию по ключам. Информации об этом валом.
Сегодня мы рассмотрим как сделать «тупиковую машину». Под ней я понимаю машину, попасть на которую можно через интернет по ssh, но на самой этой машине интернета нет.
Заинтриговал? Мозг немного взорвался? Короче, делаем ssh-прокси.
Это можно использовать для раздачи доступа сторонним пользователям для управления ресурсами внутри сети, для студентов, работающих на удалёнке. (студенты IT - самые агрессивные пользователи).
Короче для минимизации рисков информационной безопасности. Скажу сразу, это не панацея. Инфу/файлы можно таскать через буффер обмена. Но много информации так не передашь.
Поехали!
Понадобится 2 машины: Бастионная (Jump-сервер, ssh-прокси) - машина, которая торчит открытым портом ssh в интернет.
И Тупиковая - машина (возможно виртуалка), с открытым в локалку портом ssh, на которой будет работать пользователь. И у которой нет доступа в инет (закрыт на периметровом маршрутизаторе. Или не прописаны шлюзы.
Основное условие у пользователя не должно быть root, а то сменит IP/MAC, пропишет шлюзы...). (допустим ее локальный ip
10.10.10.10
).С Бастионной машины должен быть доступ к Тупиковой по ssh, внутри локалки.
НА БАСТИОННОЙ МАШИНЕ. (аутентификация по ключам уже настроена, ssh защищена от быстрого перебора, для этой группы пользователей запрещен проброс портов)
1. Заводим пользователя, например, Tagd83j6 с паролем >=20 символов (не пригодится)
2. Добавляем публичный ключ Пользователя. (Он обычно с парольной фразой) в
~/.ssh/authorized_keys
3. Генерим ключ без пароля для доступа к Тупиковой машине. (лучше ed25519).
4. Домашней папке Tagd83j6 создаем файл типа
shell10.sh
(555 root:root)
#!/bin/bash
set -o errexit
set -o nounset
set -o pipefail
ssh $USER@10.10.10.10 2>/dev/null
sudo usermod -s /home/Tagd83j6/shell10.sh Tagd83j6
НА ТУПИКОВОЙ МАШИНЕ (аутентификация по ключам уже настроена)
1. Заводим пользователя Tagd83j6 с паролем >=20 символов (не пригодится)
2. добавляем публичный ключ(с Бастионной машины. п3) в
~/.ssh/authorized_keys
Все. Теперь, если на Бастионной машине от root набрать
su Tagd83j6
Сразу должны попасть на Тупиковую машину.
Собственно все.
Аутентификация пользователя производится на Бастионной машине!!!
При подключении к Бастионной машине нас сразу перебрасывает на Тупиковую. На ней есть локалка, но нет интернета.
Вопросы, критика, плюсики приветствуется.
tags: #networks #linux © by Tagd Tagd
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Привет. Такссс ребят, у нас нативочка. Короче Tagd Tagd пилит пиздатый интенсив по Bash’у для самых маленьких.
Собственно изучаем вопрос, на сколько это будет кому интересно.
Интенсив полностью халява, то есть бесплатный! Я сам его в глаза еще не видел, но думаю Tagd заебись сделает.
Ниже щас закину голосовалку. Потратьте, пожалуйста, секунду и клик, это нам очень важно! Заранее спасибо! Вы супер!
👇 👇 👇
Собственно изучаем вопрос, на сколько это будет кому интересно.
Интенсив полностью халява, то есть бесплатный! Я сам его в глаза еще не видел, но думаю Tagd заебись сделает.
Ниже щас закину голосовалку. Потратьте, пожалуйста, секунду и клик, это нам очень важно! Заранее спасибо! Вы супер!
Please open Telegram to view this post
VIEW IN TELEGRAM
Интересно, но часто получаю вопрос: чем vi отличается от vim?
ㅤ
Если коротко, то все форки
Сейчас в современных дистрибутивах предустановлен именно
Так что ничего тут такого нет. Отличия — в функциональности.
Банально открой какой-нибудь
Но если будешь проверять, убедись что открывается именно
Такие дела. Вечерком залетит пост попизже от Tagd про права.
Хорошей всем рабочий недели!
tags: #linux
—
🔔 @bashdays➡️ @gitgate
ㅤ
Если коротко, то все форки
vi
это стероидные штуки, со своими свистоперделками, обвесами и т.п. А vi давно уже в деприкейтед.VIM =
VI iMproved, то есть — «VI Улучшенный»Прям готовое погоняло для викинга.
Сейчас в современных дистрибутивах предустановлен именно
vim
. Даже в CentOS 7 был предустановлен vim
вместо vi
(без симлинков).Так что ничего тут такого нет. Отличия — в функциональности.
Банально открой какой-нибудь
index.py
в vi
и потом в vim
, сразу увидишь что в vi
отсутствует подсветка синтаксиса + в vi
если память не изменяет — не было визуального режима.Но если будешь проверять, убедись что открывается именно
vi
, потому что в 99999% у тебя отроется vim
.Такие дела. Вечерком залетит пост попизже от Tagd про права.
Хорошей всем рабочий недели!
tags: #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 71
Тут меня попросили подробнее рассказать про права 330 на каталог.
🔤 🔤 🔥 🔤 🔤 🔤 🔤
Но начну я с того, что напомню, что права в текстовом формате несколько лучше, чем в числовом.
ㅤ
Конкретно дело касается права "X". Это то же самое, что "x" но касается только каталогов.
То есть
Ну, ладно, я отвлекся. 330.
Тут в чате Alex (генератор идей) правильно назвал права «черной комнатой». Клаcсная аналогия.
Короче, я баню зловредов, которые ломятся ко мне на ssh. Баню в разных филиалах. И филиалы сваливают ежедневные отчеты мне, в головной по sftp.
По-хорошему, нужно, чтоб для каждого филиала, отдельная учетка, все загружают, каждый в свой каталог... Но данные не особо ценные.
Но и паранойю никто не отменял. А если ломанут один филиал, и как начнут данные отравлять... :-)
В общем принял решение, что все работают под одной учеткой. Поставил права на папку 330 (-wx-wx---).
Эти права разрешают файл открыть, записать, удалить. Только нужно точно указать какой конкретно файл. Потому что список получить нельзя.
Файлы сваливаются с суффиксом, например
То есть на сервере в головном от root я вижу все файлы, а филиалы не видят не то что соседние файлы, но даже свой.
Эти права раньше часто ставили на папку upload на анонимных ftp серверах. Но и сейчас можно использовать, для заливки, бэкапов, например.
Да, знаю, сейчас опытные админы набегут и начнут рассказывать про rsync. Я архивы шифрую. А при работе с шифрованными архивами rsync работает хуже, чем sftp. (Ну, сначала контрольные суммы, потом сравнение, потом синхронизация).
А что там сравнивать... они всегда разные. Блин, опять скатился на больное... В общем, при одной учетке, формально можно считать sftp сервер анонимным, но с кругом пользователей, ограниченным ключами :-).
Применение прав 330 позволяет упростить заливку файлов с обеспечением некоторой секьюрности.
Для освежения памяти очень рекомендую статью chmod в википедии.
tags: #security #linux
—
🔔 @bashdays➡️ @gitgate
Но начну я с того, что напомню, что права в текстовом формате несколько лучше, чем в числовом.
ㅤ
Конкретно дело касается права "X". Это то же самое, что "x" но касается только каталогов.
То есть
chmod -R +X ./
установит возможность поиска во всех подкаталогах текущего, но не сделает все файлы исполняемыми!Ну, ладно, я отвлекся. 330.
Тут в чате Alex (генератор идей) правильно назвал права «черной комнатой». Клаcсная аналогия.
Короче, я баню зловредов, которые ломятся ко мне на ssh. Баню в разных филиалах. И филиалы сваливают ежедневные отчеты мне, в головной по sftp.
По-хорошему, нужно, чтоб для каждого филиала, отдельная учетка, все загружают, каждый в свой каталог... Но данные не особо ценные.
Но и паранойю никто не отменял. А если ломанут один филиал, и как начнут данные отравлять... :-)
В общем принял решение, что все работают под одной учеткой. Поставил права на папку 330 (-wx-wx---).
Эти права разрешают файл открыть, записать, удалить. Только нужно точно указать какой конкретно файл. Потому что список получить нельзя.
Файлы сваливаются с суффиксом, например
filXXX_Ohd1Ul.txt
Имя файла для каждого филиала всегда одно и то же, префикс - название филиала, суффикс набор букв (защита от перебора).То есть на сервере в головном от root я вижу все файлы, а филиалы не видят не то что соседние файлы, но даже свой.
Эти права раньше часто ставили на папку upload на анонимных ftp серверах. Но и сейчас можно использовать, для заливки, бэкапов, например.
Да, знаю, сейчас опытные админы набегут и начнут рассказывать про rsync. Я архивы шифрую. А при работе с шифрованными архивами rsync работает хуже, чем sftp. (Ну, сначала контрольные суммы, потом сравнение, потом синхронизация).
А что там сравнивать... они всегда разные. Блин, опять скатился на больное... В общем, при одной учетке, формально можно считать sftp сервер анонимным, но с кругом пользователей, ограниченным ключами :-).
Применение прав 330 позволяет упростить заливку файлов с обеспечением некоторой секьюрности.
Для освежения памяти очень рекомендую статью chmod в википедии.
tags: #security #linux
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 72
В последнее время пошли мемы и обсуждения касаемо годовых премий.
❄️ Насчет годовой премии.
Когда только я пришел в компанию и в конце года получил премию (или тринадцатую зарплату) в размере оклада, я конечно прихуел.
ㅤ
Мол, ебать, вот это подгон, вот это я понимаю, чуваки заботятся о своих подчиненных. И для себя понял, что следующий год буду прям со всей силы ебашить и никого не подведу.
Так и было. А еще у меня родился ребенок, ну и там плюшек тоже подогнали + 2 недели отпуска + еще каждый год можно на недельку в отгулы сходить за счет компании. Короче этакая компания мечты.
Во второй год, дали премию в размере половины ЗП. Я такой — ммм, ну ладно, хотя план очень даже перевыполнили. Ну бизнесу виднее. Моя мотивация хуячить в прежнем режиме немного поугасла.
Потом почему-то пропала неделя с отгулами (в году можно было 7 дней прогулять без последсвий), перестали поздравлять с днюхами и вообще все стали каким-то обособленными и злыми.
Мир менялся. И на фоне этого я тоже начал становится обособленным, а самое главное злым. В дальнейшем эта злость помогла мне неплохо попрыгать по карьерной лестнице.
Ну и сейчас кожа помогает не делать хуиту, которую я делать не хочу. Меня можно заставить, но результатом никто доволен не останется.
Прошел еще один год и годовую премию вообще не дали. План снова был перевыполнен. Не, ну чо за херня. Да еще и за дежурства не заплатили (хотя ссали в уши что будет x2). Мотивация работать хорошо, вообще пропала.
И вот в этом году, дошли слухи, что премия будет, но не всем. И ты сидишь такой и думаешь — бляяяяяяя.... сууууккккаааа.... и последнюю неделю просто уже не можешь работать, потому что не знаешь, дадут тебе премию или нет.
А если не дадут? Получается я зря поработал неделю? А если дадут? Что будет? Ну деньги будут. И чо? Но не всем? А как все? Они же будут знать, что тебе дали, а им не дали? Они посчитают, что бизнес повел себя не объективно и будут хуёва работать.
Короче. Вся эта хуита с премиями создает разбалансировку в коллективе. Если ты собрался платить премию, плати ее каждый год и каждый год фиксированной суммой либо больше. Нахуй голову людям морочить?
Один раз дал, потом не дал — всё, человек отреагировал на эту ситуацию и в большинстве случаев негативно. Это условный рефлекс, как у собаки.
Собака получила кость и рада, в другой раз не получила и насрала на стену.
Хочешь сделать хорошо? Не давай вообще никому премий, а если хочешь дать, дай ее никак не привязывая к какой-то дате.
Вот дали мне премию в апреле, ну заебись, но я точно знаю что в апреле 2025 мне хуй чо дадут. Тут у меня есть прозрачность и понимание. А вот в прозрачности тринадцатой разплаты у меня нет.
Может быть, может не быть, может половина, а может 0.58 процента. ЭТО ЕБАЛА!
Еще работал в компании, дак там директор был жадный до мозга костей, покупал себе особняки и ламборджини. Но премий никому не давал. Люди по этому поводу даже и не парились, потому, что знали что премий нет. Прозрачность.
Хуль тут еще скажешь, с предстоящим вас Новым Годом, господа и дамы!
Чо там у тебя с премией-то?
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Я тут как-то пост в стол написал, показываю, выж просили ничего от вас не скрывать, ловите! Такие посты буду помечать тэгом #memories.
Когда только я пришел в компанию и в конце года получил премию (или тринадцатую зарплату) в размере оклада, я конечно прихуел.
ㅤ
Мол, ебать, вот это подгон, вот это я понимаю, чуваки заботятся о своих подчиненных. И для себя понял, что следующий год буду прям со всей силы ебашить и никого не подведу.
Так и было. А еще у меня родился ребенок, ну и там плюшек тоже подогнали + 2 недели отпуска + еще каждый год можно на недельку в отгулы сходить за счет компании. Короче этакая компания мечты.
Во второй год, дали премию в размере половины ЗП. Я такой — ммм, ну ладно, хотя план очень даже перевыполнили. Ну бизнесу виднее. Моя мотивация хуячить в прежнем режиме немного поугасла.
Потом почему-то пропала неделя с отгулами (в году можно было 7 дней прогулять без последсвий), перестали поздравлять с днюхами и вообще все стали каким-то обособленными и злыми.
Мир менялся. И на фоне этого я тоже начал становится обособленным, а самое главное злым. В дальнейшем эта злость помогла мне неплохо попрыгать по карьерной лестнице.
Ну и сейчас кожа помогает не делать хуиту, которую я делать не хочу. Меня можно заставить, но результатом никто доволен не останется.
Прошел еще один год и годовую премию вообще не дали. План снова был перевыполнен. Не, ну чо за херня. Да еще и за дежурства не заплатили (хотя ссали в уши что будет x2). Мотивация работать хорошо, вообще пропала.
И вот в этом году, дошли слухи, что премия будет, но не всем. И ты сидишь такой и думаешь — бляяяяяяя.... сууууккккаааа.... и последнюю неделю просто уже не можешь работать, потому что не знаешь, дадут тебе премию или нет.
А если не дадут? Получается я зря поработал неделю? А если дадут? Что будет? Ну деньги будут. И чо? Но не всем? А как все? Они же будут знать, что тебе дали, а им не дали? Они посчитают, что бизнес повел себя не объективно и будут хуёва работать.
Короче. Вся эта хуита с премиями создает разбалансировку в коллективе. Если ты собрался платить премию, плати ее каждый год и каждый год фиксированной суммой либо больше. Нахуй голову людям морочить?
Один раз дал, потом не дал — всё, человек отреагировал на эту ситуацию и в большинстве случаев негативно. Это условный рефлекс, как у собаки.
Собака получила кость и рада, в другой раз не получила и насрала на стену.
Хочешь сделать хорошо? Не давай вообще никому премий, а если хочешь дать, дай ее никак не привязывая к какой-то дате.
Вот дали мне премию в апреле, ну заебись, но я точно знаю что в апреле 2025 мне хуй чо дадут. Тут у меня есть прозрачность и понимание. А вот в прозрачности тринадцатой разплаты у меня нет.
Может быть, может не быть, может половина, а может 0.58 процента. ЭТО ЕБАЛА!
Еще работал в компании, дак там директор был жадный до мозга костей, покупал себе особняки и ламборджини. Но премий никому не давал. Люди по этому поводу даже и не парились, потому, что знали что премий нет. Прозрачность.
Хуль тут еще скажешь, с предстоящим вас Новым Годом, господа и дамы!
Чо там у тебя с премией-то?
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
12 118
Сегодня настроение ныть почему-то нет, поэтому научимся открывать файл на нужной строке в разных редакторах.
ㅤ
А нахуя это нужно? Ну ХЗ, я обычно этим не пользуюсь, открываю полностью файл и ищу нужную мне строку. Но это вкусовщина, кто как привык.
Вообще я встречал людей, которые так открывают файлы, когда видят нечто подобное:
Хуяк и открыл
Короче давай посмотрим как это сделать.
Создаем файл для теста:
Получаем такое содержимое:
Ну и теперь давай открывать это:
➡️ mcedit
➡️ less
➡️ nano
➡️ vim
Вот такие пироги. А какие еще редакторы ты знаешь в которых можно открыть файл на определенной строке? Камон в комменты!
tags: #linux #tricks #bash
—
🔔 @bashdays➡️ @gitgate
ㅤ
А нахуя это нужно? Ну ХЗ, я обычно этим не пользуюсь, открываю полностью файл и ищу нужную мне строку. Но это вкусовщина, кто как привык.
Вообще я встречал людей, которые так открывают файлы, когда видят нечто подобное:
Error in file "script.py" on line 42: NameError: name 'variable' is not defined
Хуяк и открыл
script.py
сразу на 42 строке.Короче давай посмотрим как это сделать.
Создаем файл для теста:
( printf '%s\n' {A..Z}-$[++I] > /tmp/bashdays.txt )
Получаем такое содержимое:
A-1
B-2
C-3
D-4
E-5
F-6
G-7
H-8
I-9
...
Ну и теперь давай открывать это:
mcedit +7 /tmp/bashdays.txt
less -w +11 /tmp/bashdays.txt
nano +14 /tmp/bashdays.txt
vim +4 /tmp/bashdays.txt
Вот такие пироги. А какие еще редакторы ты знаешь в которых можно открыть файл на определенной строке? Камон в комменты!
tags: #linux #tricks #bash
—
Please open Telegram to view this post
VIEW IN TELEGRAM
12 111
Про процессоры
Привет, знаю что несколько не формат, но давно хотел написать да и в личке довольно много просили, потому полагаю некоторым пригодится.
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤 🔤
Автор поста 👆👆👆 А я лишь утащил в телеграф, получился длинно-пост, сюда не влезло. Лайки и комментарии приветствуются.
👉 Читаем и проникаемся
tags: #hardware
—
🔔 @bashdays➡️ @gitgate
Привет, знаю что несколько не формат, но давно хотел написать да и в личке довольно много просили, потому полагаю некоторым пригодится.
Автор поста 👆👆👆 А я лишь утащил в телеграф, получился длинно-пост, сюда не влезло. Лайки и комментарии приветствуются.
tags: #hardware
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 36
Про эстетику и терминал
Записывал я тут какое-то видео и заметил, что меня пиздец бесит такое поведение:
Но команда sleep еще не завершилась, а курсор уже выпрыгнул из штанов.
ㅤ
Хочу, чтобы курсор после запуска команды не перескакивал на новую строку, а ждал завершения команды.
Люблю я себе головняк создать на ровном месте. Поехали решать чо!
Получилась такая упоротая и непонятная функция.
Что происходит?
Инициализируем переменную PROMPT_COMMAND. Это команда выполняется перед выводом строки приглашения (prompt).
Дальше делаем курсор видимым с помощью echo. А следом скрываем курсор перед выполнением каждой команды с помощью trap.
В trap мы установили обработчик для псевдо-сигнала DEBUG.
➡️ help trap
Получилось так:
1. Первая команда делает курсор видимым.
2. Вторая команда установит обработчик на сигнал DEBUG.
3. Обработчик скрывает курсор и сбрасывается обработчик для сигнала DEBUG в дефолт.
Сохраняем эту поделку в
Ну а чтобы эта штука оказалась тебе полезной, можешь написать свой отладчик bash скриптов.
К примеру будем выводить команду, перед её выполнением:
Теперь позапускай sleep, ls или что-то еще, перед выполнением команды, на экран будет выводиться команда. К примеру так:
Вот такой фигнёй я порой занимаюсь, а не сериальчики смотрю.
Покеда! Вечером еще увидимся, декабрь прям шепчет на контент и интеграции. В январе уж отдохнем.
tags: #bash
—
🔔 @bashdays➡️ @gitgate
Записывал я тут какое-то видео и заметил, что меня пиздец бесит такое поведение:
1. Открываю терминал
2. Запускаю к примеру sleep 10
3. Курсор перескакивает на новую строку
Но команда sleep еще не завершилась, а курсор уже выпрыгнул из штанов.
ㅤ
Хочу, чтобы курсор после запуска команды не перескакивал на новую строку, а ждал завершения команды.
Люблю я себе головняк создать на ровном месте. Поехали решать чо!
cursor_killer() {
echo -ne '\e[?25h'
trap 'echo -ne "\e[?25l"; trap DEBUG' DEBUG
}
PROMPT_COMMAND='cursor_killer'
Получилась такая упоротая и непонятная функция.
Что происходит?
Инициализируем переменную PROMPT_COMMAND. Это команда выполняется перед выводом строки приглашения (prompt).
Дальше делаем курсор видимым с помощью echo. А следом скрываем курсор перед выполнением каждой команды с помощью trap.
В trap мы установили обработчик для псевдо-сигнала DEBUG.
If a SIGNAL_SPEC is DEBUG, ARG is executed before every simple command.
\e[?25h =
включает отображение курсора (h = "show")\e[?25l =
отключает отображение курсора (l = "low visibility" или "hide")Получилось так:
1. Первая команда делает курсор видимым.
2. Вторая команда установит обработчик на сигнал DEBUG.
3. Обработчик скрывает курсор и сбрасывается обработчик для сигнала DEBUG в дефолт.
Сохраняем эту поделку в
cur_killer.sh
и запускаем когда нам это нужно. Либо делаем source cur_killer.sh.
Ну а чтобы эта штука оказалась тебе полезной, можешь написать свой отладчик bash скриптов.
К примеру будем выводить команду, перед её выполнением:
trap 'echo "RUN: $BASH_COMMAND"' DEBUG
Теперь позапускай sleep, ls или что-то еще, перед выполнением команды, на экран будет выводиться команда. К примеру так:
trap 'echo "RUN: $BASH_COMMAND"' DEBUG
ls
RUN: ls --color=auto -la
Вот такой фигнёй я порой занимаюсь, а не сериальчики смотрю.
Покеда! Вечером еще увидимся, декабрь прям шепчет на контент и интеграции. В январе уж отдохнем.
tags: #bash
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 56
Пули закончатся раньше чем ноги
Откапал сегодня в одном коммерческом интерпрайзе такую конструкцию:
Смотрю я в неё и понять не могу, а нахуя?
ㅤ
Давай разберемся что тут не так.
Понял в чем дело? Нет? Давай дальше…
Вопрос — нахуя здесь «test»? Цикл и так является условным и сам проверяет что вернула команда. Получается избыточность.
Такое обычно херачат, либо по привычке, либо когда нужно быстрое решение, а времени на ресерч нет. Работает да и хрен с ним.
Вся эта конструкция могла бы выглядеть так:
Цикл будет шуршать, пока команда pgrep отрабатывает без ошибок и находит процесс.
Вот такая вот романтика, на хую два бантика… Изучай!
tags: #bash
—
🔔 @bashdays➡️ @gitgate
Откапал сегодня в одном коммерческом интерпрайзе такую конструкцию:
while [ $(pgrep process_name)>'0' ]
do
sleep 5
done
Смотрю я в неё и понять не могу, а нахуя?
ㅤ
Давай разберемся что тут не так.
«[»
= это аналог или синоним встроенной команды «test». Если не задавать оператор, то на пустой строке вернется FALSE. Ну и логично что вернется TRUE если срока не пустая.«while»
— ежу понятно, условный цикл. Будем вертеть на хуй, пока команда заданная в условие возвращаешь истину. В нашем случае эта команда «test».«pgrep»
— ищем процесс с именем process_name. Эта штука выводит на стандартный вывод PID процесса. Если процесс не найден, код возврата отличный от нуля и нуль в противном случае.«$(command)»
— Command запускается в подоболочке. Результат выполнения, подставляется в текущую позицию.«>»
— Перенаправляет результат работы команды в файл (в нашем случае файл 0). Существующий файл, перезаписывается. Несуществующий, будет создан.Понял в чем дело? Нет? Давай дальше…
Вопрос — нахуя здесь «test»? Цикл и так является условным и сам проверяет что вернула команда. Получается избыточность.
Команда test — Предназначена для проверки типа файла и сравнения чисел и строк. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости от вычисления выражения. Выражения могут быть как унарными, так и бинарными.
Такое обычно херачат, либо по привычке, либо когда нужно быстрое решение, а времени на ресерч нет. Работает да и хрен с ним.
Вся эта конструкция могла бы выглядеть так:
while pgrep process_name &> /dev/null
do
sleep 5
done
Цикл будет шуршать, пока команда pgrep отрабатывает без ошибок и находит процесс.
Вот такая вот романтика, на хую два бантика… Изучай!
tags: #bash
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 72
Набрёл сегодня на мануал по установке ack, а там такое:
В строке, в конце есть непонятности:
ㅤ
Опять какая-то магия, а магию мы с тобой любим.
Давай разберемся.
В данном случае
Например,
Вместо доступа к уже выполненной команде из истории, мы ссылаемся на текст текущей строки.
Соответственно:
Как это работает?
Сначала выполняется команда curl, которая скачает файл ack-2.28-single-file и сохранит его в
После этого, команда chmod изменяет права доступа для файла.
А
И по итогу команда превращается в
Вот и вся магия. Упорото? Аще!
А зачем это нужно?
- удобно для автоматизации и избежания дублирования ввода
- снижает вероятность ошибок, если накосячил в путях
Короче эта хреновина делает команду более динамичной и минимизирует рукоблудие.
Штука прикольная, как говорится — век живи, век учись.
🔥 Ну и с пятницей друзья! Еще пару недель и каникулы.
tags: #bash
—
🔔 @bashdays➡️ @gitgate
curl https://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 !#:3
ack — инструмент для поиска текста в файлах, который часто используется разработчиками как более удобная и современная альтернатива `grep`. Он написан на Perl и ориентирован на работу с кодом.
В строке, в конце есть непонятности:
!#:3
ㅤ
Опять какая-то магия, а магию мы с тобой любим.
Давай разберемся.
В данном случае
!#:3
— это конструкция, связанная с историей команд в оболочке Bash/Zsh.!
= Используется для доступа к истории команд.Например,
!!
повторит последнюю команду, а !123
выполнит команду с номером 123 в истории.#
= Ссылается на текущую команду, которая в данный момент пишется.Вместо доступа к уже выполненной команде из истории, мы ссылаемся на текст текущей строки.
:3
= Указывает, что нужно взять третий аргумент в текущей строке.Соответственно:
:1 — первый аргумент
:2 — второй аргумент
:3 — третий аргумент
Как это работает?
Сначала выполняется команда curl, которая скачает файл ack-2.28-single-file и сохранит его в
~/bin/ack.
После этого, команда chmod изменяет права доступа для файла.
А
!#:3
подставляет третий аргумент текущей команды, то есть ~/bin/ack.
И по итогу команда превращается в
chmod 0755 ~/bin/ack
curl http://beyondgrep.com/ack-2.28-single-file > ~/bin/ack && chmod 0755 ~/bin/ack
Вот и вся магия. Упорото? Аще!
А зачем это нужно?
- удобно для автоматизации и избежания дублирования ввода
- снижает вероятность ошибок, если накосячил в путях
Короче эта хреновина делает команду более динамичной и минимизирует рукоблудие.
Штука прикольная, как говорится — век живи, век учись.
tags: #bash
—
Please open Telegram to view this post
VIEW IN TELEGRAM
12 124
This media is not supported in your browser
VIEW IN TELEGRAM
Ну чо, кто на ёлку богат уже? Кидайте в комменты ёлки и своё пятничное настроение, пиво там, вискарь или чо там у вас.
Please open Telegram to view this post
VIEW IN TELEGRAM
55 60