Если в каком-то скрипте лень заморачиваться с логами, можно воспользоваться утилитой
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤 🔤
Например:
Просмотреть логи можно по тегу:
Можно указать приоритет сообщения текстом или числом, как в syslog:
А можно и префиксом в начале сообщения (число в угловых скобках):
В случаях отправки через
Для логирования
Во втором случае можно задать отдельный приоритет для сообщений из
😀 😃 😄 😁 😅 😂 🤣
😇 🙂 🙃 😉 😌 😍 🥰
😗 😙 😚 😋 😛 😝 😜
🤨 🧐 🤓 😎 🤩 🥳 😏
🛠 #балансбатл
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
systemd-cat. Она отправляет логи прямиком в journald.Например:
echo "Successful backup" | systemd-cat -t my-backup
Просмотреть логи можно по тегу:
journalctl -t my-backup
Можно указать приоритет сообщения текстом или числом, как в syslog:
echo "Шеф, усё пропало!" | systemd-cat -t my-backup -p 1
А можно и префиксом в начале сообщения (число в угловых скобках):
echo "<1>Шеф, усё пропало!" | systemd-cat -t my-backup
В случаях отправки через
pipe в journald попадет только то, что вывелось в stdout.Для логирования
stderr можно либо отправить stderr в stdout, либо запускать команду как аргумент systemd-cat:ls non-exists 2>&1 | systemd-cat -t my-log
systemd-cat -t my-log ls non-exists
Во втором случае можно задать отдельный приоритет для сообщений из
stderr: --stderr-priority.—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 114
Как я проебал 4 часа из-за кавычки
Балансбатл заебал, теперь пишу Я, одним дублем, на ошибки не триггеритесь🥳
Да всё просто. После блокировок появилось много тикетов от клиентов, в которых говорилось - хочу GPT чат ёпта и чтобы блядь как раньше, нажал кнопочку и пошел работать.
Да, без GPT уже никто не работает, деградировали все сука в зеленые сопли.
Тут даже не «вайб-кодинг», а прям массовая истерия и осмысленный слив корпоративных данных.
Нужно проверить договор? Так этож его читать нужно, нахуй надо, заливаем в GPT, а он пусть анализирует риски и неточности. Ну и всё в таком духе.
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Левой дрочу, правой жопу щекочу!
Короче спрос есть, тем более я умею настраивать
Хуль, пошел настраивать на серваки клиентов, настроил, пытаюсь подключиться с локальной машины. ХУЙ ТАМ ПЛАВАЛ! Сервер нотфаунд. Пробую курлы, телнеты, меняю порты — ничего!
Ладно, думаю у клиента сервак с плохим айпишником, пошел настраивать другому клиенту. Такая же история.
Хм… уже закономерность какая-то. Иду к третьему клиенту, переношу полностью образ своего сервера на его сервер. Ну теперь 100% заработает!
Ага, история повторяется… Сервер нотфаунд.
Ну не может же такого быть. У меня с моим сервером все работает, а с клиентскими не работает. Даж не курлит и не телнетит ничего. Однако.
Как говорится:
Утро вечера мудренее. Если что-то не получается, нужно это дело отложить и вернуться к нему позже. Так и сделал.
На утро вернулся и подумал иначе. А что если проблема — во мне? Нужно проверить эту гипотезу.
Беру ноут для созвонов, ставлю
Хм… иду за комп на котором все вчера настраивал — сервер нотфаунд.
Да ёбтавоюмать! Это как в nginx с редиректами, ебешься 5 часов, а потом понимаешь что дело не в nginx, а в твоём браузере. Оно закешировало запросы и похуй ему, редиректит по умолчанию, даже если меняешь конфиг nginx.
Что было?
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Антивирус блядь! Какой не скажу, а то опять придут люди и начнут в меня письками тыкать и угрожать. Мыж с вами достаточно медийные, обсирать никого нельзя.
В антивирусе есть галка — Блокировать нерекомендуемые сайты.
Методом подбора эта галка была определена, она и блочила все мои попытки подключения. Это даже не фаервол, фаервол я отключал, когда настраивал
Это чисто хуйня, которая блядь неочевидно скрыта в другом разделе. И до сих пор непонятно, почему айпишники моих серверов это рекомендуемые, а айпишники клиентов это не рекомендуемые.
ㅤ
Так и живем. Один лишний пробел, одна не поставленная запятая, забытый таб, вполне может уничтожить твой день.
Но опять же опыт. Теперь при настройке подобного гавна, буду иметь это ввиду. Но это не точно. Я люблю по 5 раз наступать на грабли. Говорят на ошибках учатся, но это не про меня.
Век живи, век учись!
🛠 #рабочиебудни
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Балансбатл заебал, теперь пишу Я, одним дублем, на ошибки не триггеритесь
Самое главное в ходе дебага, не выйти на самого себя.
Да всё просто. После блокировок появилось много тикетов от клиентов, в которых говорилось - хочу GPT чат ёпта и чтобы блядь как раньше, нажал кнопочку и пошел работать.
Да, без GPT уже никто не работает, деградировали все сука в зеленые сопли.
Тут даже не «вайб-кодинг», а прям массовая истерия и осмысленный слив корпоративных данных.
Нужно проверить договор? Так этож его читать нужно, нахуй надо, заливаем в GPT, а он пусть анализирует риски и неточности. Ну и всё в таком духе.
Левой дрочу, правой жопу щекочу!
Короче спрос есть, тем более я умею настраивать
openconnect да и сам им пользуюсь в личных целях.Хуль, пошел настраивать на серваки клиентов, настроил, пытаюсь подключиться с локальной машины. ХУЙ ТАМ ПЛАВАЛ! Сервер нотфаунд. Пробую курлы, телнеты, меняю порты — ничего!
Ладно, думаю у клиента сервак с плохим айпишником, пошел настраивать другому клиенту. Такая же история.
Хм… уже закономерность какая-то. Иду к третьему клиенту, переношу полностью образ своего сервера на его сервер. Ну теперь 100% заработает!
Ага, история повторяется… Сервер нотфаунд.
Ну не может же такого быть. У меня с моим сервером все работает, а с клиентскими не работает. Даж не курлит и не телнетит ничего. Однако.
Как говорится:
Лох этот тот, кто пытается понять что вокруг происходит, хотя все кругом уже это понимают.
Утро вечера мудренее. Если что-то не получается, нужно это дело отложить и вернуться к нему позже. Так и сделал.
На утро вернулся и подумал иначе. А что если проблема — во мне? Нужно проверить эту гипотезу.
Беру ноут для созвонов, ставлю
openconnect клиента и без проблем подключаюсь ко всем 3м серверам которые вчера настраивал.Хм… иду за комп на котором все вчера настраивал — сервер нотфаунд.
Да ёбтавоюмать! Это как в nginx с редиректами, ебешься 5 часов, а потом понимаешь что дело не в nginx, а в твоём браузере. Оно закешировало запросы и похуй ему, редиректит по умолчанию, даже если меняешь конфиг nginx.
Что было?
Антивирус блядь! Какой не скажу, а то опять придут люди и начнут в меня письками тыкать и угрожать. Мыж с вами достаточно медийные, обсирать никого нельзя.
В антивирусе есть галка — Блокировать нерекомендуемые сайты.
Методом подбора эта галка была определена, она и блочила все мои попытки подключения. Это даже не фаервол, фаервол я отключал, когда настраивал
openconnect. Всегда фаер отключаю когда работы подобного плана делаю.Это чисто хуйня, которая блядь неочевидно скрыта в другом разделе. И до сих пор непонятно, почему айпишники моих серверов это рекомендуемые, а айпишники клиентов это не рекомендуемые.
ㅤ
Так и живем. Один лишний пробел, одна не поставленная запятая, забытый таб, вполне может уничтожить твой день.
Но опять же опыт. Теперь при настройке подобного гавна, буду иметь это ввиду. Но это не точно. Я люблю по 5 раз наступать на грабли. Говорят на ошибках учатся, но это не про меня.
Век живи, век учись!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Бесплатный онлифанс
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
🛠 #xfiles
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
begin 644 bashdays.txt
MT)_1@-"XT++0M=&"+"#1@="ZT+[0N]&,T+K0OB#0L=&#T+30M=&"(#$P,"\P
M+C4L(-"]T+#0O]"XT8C0N"#0OM&"T++0M=&"(-"R(-"ZT+[0O-"\T+70O=&"
MT+#1@-"XT8_1A2#0NB#0O]"^T8'1@M&#(-"X(-"RT+[0M]"\T+[0MM"]T+X@
IT8$@T8+0OM"QT+[0N2#1@="RT8_0MM"UT8+1@=&/(-"<T+#0NM&!+@H`
`
end
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Безумству храбрых поём мы песню
Ну чё, принёс я тебе «остров с сокровищами».
ㅤ
На карте наш подписчик рандомом разбросал 100 кодов. Каждый код ты можешь обменять на 500 настоящих рублей. Все коды установлены на поверхности для простоты поисков.
Поиск кодов это не основное, можно банально встретиться 1x1 и набить друг другу ебальник. Ну или просто почилить, отгрохать себе подземную базу или построить личный дата-центр.
Если будут лаги и т.п. пиши сюда @linuxfactorybot, бум разбираться.
Я нашел код, что дальше?
1. Делаешь скрин кода и координат XYZ (нажать F3)
2. Скидываешь эту инфу Максу
3. Забираешь приз
Что бы не было соблазна схитрить, предприняты меры, все ходы записаны, так что будь честен.
Как начать?
Качаешь клиент отсюда или берешь официальный. Версия сервера
Регистрация
Время работы сервера: c 05:00 МСК до 19:00 МСК
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Что дальше?
А дальше посмотрим, если сервак переживет эту неделю и не будет уничтожен письками, то таблички с промокодами будут пополняться каждую неделю. Ну и время работы сервера будет увеличено. А по пятницам можно сходки устраивать, голосовой чатик замутить, пиво, все дела.
На этом пока всё. Хорошей тебе рабочей недели.
🛠 #островсокровищ
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Ну чё, принёс я тебе «остров с сокровищами».
ㅤ
На карте наш подписчик рандомом разбросал 100 кодов. Каждый код ты можешь обменять на 500 настоящих рублей. Все коды установлены на поверхности для простоты поисков.
Дополнительно установлены 10 кодов на два бесплатных месяца обучения в Linux Factory.
Поиск кодов это не основное, можно банально встретиться 1x1 и набить друг другу ебальник. Ну или просто почилить, отгрохать себе подземную базу или построить личный дата-центр.
Если будут лаги и т.п. пиши сюда @linuxfactorybot, бум разбираться.
Я нашел код, что дальше?
1. Делаешь скрин кода и координат XYZ (нажать F3)
2. Скидываешь эту инфу Максу
3. Забираешь приз
Что бы не было соблазна схитрить, предприняты меры, все ходы записаны, так что будь честен.
Учти, что за тобой будут охотиться специально обученные боты-вжопуебаки.
Как начать?
Качаешь клиент отсюда или берешь официальный. Версия сервера
1.21.8 Подключаешься к mc.bashdays.ru и погружаешься в приключения.Регистрация
/reg <пароль> <пароль>
/log <пароль>
Время работы сервера: c 05:00 МСК до 19:00 МСК
Что дальше?
А дальше посмотрим, если сервак переживет эту неделю и не будет уничтожен письками, то таблички с промокодами будут пополняться каждую неделю. Ну и время работы сервера будет увеличено. А по пятницам можно сходки устраивать, голосовой чатик замутить, пиво, все дела.
На этом пока всё. Хорошей тебе рабочей недели.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотел бы предложить пост о деградации батареи в Linux.
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤 🔤
Оригинал статьи написал для своего блога и хотел бы поделиться с интересующейся Linux-ом аудиторией 👇
https://alchemmist.xyz/ru/articles/battery-degradation/
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Оригинал статьи написал для своего блога и хотел бы поделиться с интересующейся Linux-ом аудиторией 👇
https://alchemmist.xyz/ru/articles/battery-degradation/
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 38
Как-то давненько пришлось мне отлаживать большущую APIху, но под рукой была только консолька. Ни о каком GUI и речь не шла. А пулять запросы через
ㅤ
Тем более хотелось что-то организованное и визуально приятное.
Postman сразу мимо, это гавно сделали настолько перегруженным, что им пользоваться уже нереально, да и под чистым терминалом его не запустишь.
Выбор пал на Posting. Это TUI клиент со всем необходимым функционалом.
Так он и прижился, сейчас если что-то нужно отладить или потестить у меня есть эта замечательная тулза. Не перегружена хуйнёй и дружелюбная. Есть все самое необходимое, даже мышкой можно тыкать. Ну и сессии сохраняет со всеми запросами.
Ставится элементарно:
Для хакерменов прям мастхев. Забирай в копилку, годнота!
🛠 #linux #utilites
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
curl я заебался.ㅤ
Тем более хотелось что-то организованное и визуально приятное.
Postman сразу мимо, это гавно сделали настолько перегруженным, что им пользоваться уже нереально, да и под чистым терминалом его не запустишь.
Выбор пал на Posting. Это TUI клиент со всем необходимым функционалом.
Так он и прижился, сейчас если что-то нужно отладить или потестить у меня есть эта замечательная тулза. Не перегружена хуйнёй и дружелюбная. Есть все самое необходимое, даже мышкой можно тыкать. Ну и сессии сохраняет со всеми запросами.
Ставится элементарно:
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install --python 3.13 posting
uv — это современный инструмент для Python, который объединяет в себе функционал менеджера пакетов и виртуальных окружений, задумывается как замена pip + venv/virtualenv + pip-tools.
Для хакерменов прям мастхев. Забирай в копилку, годнота!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Из каждого чайника слышу про ZED, это такой новомодный IDE от авторов Atom. Славится своей скоростью и минимализмом, никаких тебе новогодних ёлок и перегруженных интерфейсов. Чем-то напоминает VIM.
ㅤ
Дошли руки потыкать. Но одного желания мало, под винду сука дистрибутив не завезли. Хочешь под винду? Скомпилируй из исходников!
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Да легко! Спустя 4 часа ебатни и дебага — спасибо, идите нахуй!
Залил в себя пару пиалок до-хун-пао, словил дзен и нашел выход.
Пиздуем на сайт и ищем ZED. Ебала жаба гадюку! Всё уже придумано и собрано за нас. Верните мне 4 часа компиляции!
Открываем CMD и хуячим:
Всё!
Если не установлен
Что по IDE?
Моё почтение, все нужные мне плагины по девопсовым делам — есть. Даже маркдаун и превью работает. Шикарно!
Из коробки есть подключение к удаленным серверам. То есть подключаешься к своему удаленному серверу разработки и пишешь код. В лучших традициях VSCode.
Чтобы по умолчанию в качестве терминала у тебя не открывался CMD, делаем финт ушами и дружим ZED с WSL.
Теперь открывается ZSH, или что там у тебя установлено в WSL.
Больше добавить пока нечего, всё нравится. Буду тыкать, а там уже посмотрим.
🛠 #windows #ide #dev
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Дошли руки потыкать. Но одного желания мало, под винду сука дистрибутив не завезли. Хочешь под винду? Скомпилируй из исходников!
Да легко! Спустя 4 часа ебатни и дебага — спасибо, идите нахуй!
Если официальный мануал по компиляции писала жопорукая обезьяна, тут уже ничего с этим не поделаешь.
Залил в себя пару пиалок до-хун-пао, словил дзен и нашел выход.
Пиздуем на сайт и ищем ZED. Ебала жаба гадюку! Всё уже придумано и собрано за нас. Верните мне 4 часа компиляции!
Открываем CMD и хуячим:
scoop bucket add extras
scoop install extras/zed
Всё!
Если не установлен
scoop, ставим так:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Что по IDE?
Моё почтение, все нужные мне плагины по девопсовым делам — есть. Даже маркдаун и превью работает. Шикарно!
Из коробки есть подключение к удаленным серверам. То есть подключаешься к своему удаленному серверу разработки и пишешь код. В лучших традициях VSCode.
Чтобы по умолчанию в качестве терминала у тебя не открывался CMD, делаем финт ушами и дружим ZED с WSL.
"terminal": {
"shell": {
"program": "C:\\Windows\\System32\\wsl.exe"
},
"font_family": "Hack Nerd Font Mono",
"font_size": 15,
"line_height": "standard"
}Теперь открывается ZSH, или что там у тебя установлено в WSL.
Ааа, забыл, в ZED можно подключить ИИ агенты, причем можешь локально поднять дипсик или т.п. и использовать его прям в IDE.
Больше добавить пока нечего, всё нравится. Буду тыкать, а там уже посмотрим.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 49
Поделюсь своим решением, как я организовал бэкапы баз 1С. Основное требование к решению (за исключением работоспособности) - использование штатного ПО, которое уже есть в репозитории/ничего дополнительно не устанавливать. Имитация закрытого контура.
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤
Итак, условия: windows server на котором работает 1с и на нем же PostgreSQL и некое файловое хранилище, к которому есть доступ исключительно по ftp.
ㅤ
Из утилит, которыми можно решать задачу, под рукой оказалась
Бэкап базы 1С будем делать штатной программой от 1С. Однозначного мнения нет, чем лучше бэкапить - средствами СУБД или этой программой, есть у каждого варианта свои преимущества и недостатки. В нашем варианте используем именно ПО от 1С.
Чтобы делать это с помощью планировщика, делаем простой .bat для windows сервера, имя файла отражает дату его создания.
Бэкапы базы сохраняются локально. Теперь надо их оттуда забрать и бережно перенести на файловое хранилище.
Для этих целей хорошо подойдет
Формат будущей команды выглядит так:
Обращайте внимание на слэши в конце пути - играют роль в вопросе перенести папку целиком или же ее содержимое, без создания одноименной папки в точке назначения.
Все хорошо, но rsync работает, если хотя бы один путь локальный, а у нас два удаленных хоста. Выход есть. Примонтируем папку с бэкапами по SMB.
Строка в
В
Далее, возникла засада в виде того, что если доступ есть по
В этой ситуации поможет замечательная
Установим ее и добавим своего пользователя в группу fuse (чтобы работать без повышения привилегий):
Создаем файлик с кредами, создаем папку куда будем монтировать и подключаемся (все от своего пользователя):
Кроме работы
Стоит еще пояснить о ключе
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Итак, условия: windows server на котором работает 1с и на нем же PostgreSQL и некое файловое хранилище, к которому есть доступ исключительно по ftp.
ㅤ
Из утилит, которыми можно решать задачу, под рукой оказалась
rsync.Бэкап базы 1С будем делать штатной программой от 1С. Однозначного мнения нет, чем лучше бэкапить - средствами СУБД или этой программой, есть у каждого варианта свои преимущества и недостатки. В нашем варианте используем именно ПО от 1С.
Чтобы делать это с помощью планировщика, делаем простой .bat для windows сервера, имя файла отражает дату его создания.
set datetemp=%date:~-10%`
"C:\Program Files\1cv8\8.3.24.1819\bin\ibcmd.exe" infobase dump --db-server=localhost --dbms=PostgreSQL --db-name=название_бд --db-user=имя_пользователя_бд --db-pwd=пароль_пользователя_бд --user=имя_пользователя_в_1С --password=пароль_пользователя_1С "C:\путь_для_бэкапа\имя_файла_"%datetemp%".dt"
Бэкапы базы сохраняются локально. Теперь надо их оттуда забрать и бережно перенести на файловое хранилище.
Для этих целей хорошо подойдет
rsync. Поднимать сервер rsync не хотелось, поэтому пошел по пути набора команд.Формат будущей команды выглядит так:
rsync -av ~/bases_1s/bgu ~/backup/
Rsync (ключа а = в архивном режиме, его обычно достаточно для целей бэкапа, ключ v добавит подробностей) скопирует папку bgu из ~/bases_1s и положит их в ~/backup/.Обращайте внимание на слэши в конце пути - играют роль в вопросе перенести папку целиком или же ее содержимое, без создания одноименной папки в точке назначения.
Все хорошо, но rsync работает, если хотя бы один путь локальный, а у нас два удаленных хоста. Выход есть. Примонтируем папку с бэкапами по SMB.
Строка в
/etc/fstab выглядит у меня так://192.168.0.2/название_папки_на_сервере_win /home/user/bases_1s cifs credentials=/home/user/.smbcreds,noauto,users,iocharset=utf8,uid=500,gid=500 0 0
В
.smbcreds лежит логин с паролем пользователя windows сервера, noauto=не монтировать при запуске.Далее, возникла засада в виде того, что если доступ есть по
ftp, то rsync бессилен, ftp - протокол и rsync тоже протокол и надо выбрать.В этой ситуации поможет замечательная
curlftpfs. Утилита позволяет монтировать удаленные ftp папки в локальную файловую систему.Установим ее и добавим своего пользователя в группу fuse (чтобы работать без повышения привилегий):
apt-get install curlftpfs
usermod -aG fuse имя_пользователя.
Создаем файлик с кредами, создаем папку куда будем монтировать и подключаемся (все от своего пользователя):
echo 'machine 192.168.0.18
login фтп_юзер
password пароль' > .netrc
Кроме работы
rsync есть еще реализация резервного копирования посредством cp. Оставил пока как есть, в планах единообразить и прикрутить отчет о выполнении. На данном этапе скрипт выглядит примерно так, смотри в первом комментарии к этому посту, одним кадром не влез.
Стоит еще пояснить о ключе
--temp-dir=/tmp/rs в команде rsync. Он нужен чтобы обойти ограничение "ftp файловой системы", которая не поддерживает создание временных файлов.—
Please open Telegram to view this post
VIEW IN TELEGRAM
Рубрика "упоротые однострочники".
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤
Как послать
ㅤ
Первым делом мы шлём в известный нам сервер кластера
Референс команды cluster nodes.
Пример выхлопа
Дальше мы парсим выхлоп
Ура, у нас есть список редисок с портами. Всё это заворачиваем в
И кайф, осталось порезать по двоеточию в разные переменные хост и порт, и, вооружившись
Режем строку по двоеточию на 2 переменных
Итого у нас получается следующее:
Выводим себе для удобства чтения результата хост редиса и порт куда стучимся:
И
Получаем на выходе:
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Как послать
PING всем серверам кластера редиса и не умереть от скукиㅤ
for nodeport in $(echo "CLUSTER NODES" | nc redis.example 6900 | awk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}'); do IFS=":" read -r node port <<< $nodeport; echo -n "$nodeport: "; echo "PING" | nc $node $port; doneПервым делом мы шлём в известный нам сервер кластера
redis команду CLUSTER NODES.echo "CLUSTER NODES" | nc redis.example 6900
Референс команды cluster nodes.
Пример выхлопа
shell$5256
07c37dfeb235213a872192d90877d0cd55635b91 127.0.0.1:30004@31004,hostname4 slave e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 0 1426238317239 4 connected
67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 127.0.0.1:30002@31002,hostname2 master - 0 1426238316232 2 connected 5461-10922
292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 127.0.0.1:30003@31003,hostname3 master - 0 1426238318243 3 connected 10923-16383
6ec23923021cf3ffec47632106199cb7f496ce01 127.0.0.1:30005@31005,hostname5 slave 67ed2db8d677e59ec4a4cefb06858cf2a1a89fa1 0 1426238316232 5 connected
824fe116063bc5fcf9f4ffd895bc17aee7731ac3 127.0.0.1:30006@31006,hostname6 slave 292f8b365bb7edb5e285caf0b7e6ddc7265d2f4f 0 1426238317741 6 connected
e7d1eecce10fd6bb5eb35b9f99a514335d9ba9ca 127.0.0.1:30001@31001,hostname1 myself,master - 0 0 1 connected 0-5460
Дальше мы парсим выхлоп
awk-шкой, так как нам нужны чисто IP и портawk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}')$1~/^[0-9a-z].*$/ - берём строчки, которые начинаются с циферкобуковок{sub("@"," "); print $2} - режем дополнительно по символу собаки, выводим 2ю колонку. Получаем:127.0.0.1:30004
127.0.0.1:30002
127.0.0.1:30003
127.0.0.1:30005
127.0.0.1:30006
127.0.0.1:30001
Ура, у нас есть список редисок с портами. Всё это заворачиваем в
for:for nodeport in $(echo "CLUSTER NODES" | nc redis.example 6900 | awk '$1~/^[0-9a-z].*$/ {sub("@"," "); print $2}'); do ...; doneИ кайф, осталось порезать по двоеточию в разные переменные хост и порт, и, вооружившись
netcat-ом, сделать PING.Режем строку по двоеточию на 2 переменных
IFS=":" read -r node port <<< $nodeport;
Итого у нас получается следующее:
nodeport=127.0.0.1:30004
node=127.0.0.1
port=30004
Выводим себе для удобства чтения результата хост редиса и порт куда стучимся:
echo -n "$nodeport: "
И
netcat-ом шлём команду PING уже на ноду.echo "PING" | nc $node $port
Получаем на выходе:
127.0.0.1:30004: +PONG
127.0.0.1:30002: +PONG
127.0.0.1:30003: +PONG
127.0.0.1:30005: +PONG
127.0.0.1:30006: +PONG
127.0.0.1:30001: +PONG
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Закончилось место на диске? Или же закончились inode?
🔤 🔤 🔥 🔤 🔤 🔤 🔤 🔤 🔤
Ситуация неприятная и чаще всего выходом служит удаление "ненужных" файлов. Рассмотрим ситуацию, когда все файлы нужны, то есть удалять ничего не будем.
ㅤ
В качестве примера, смоделируем ситуацию, когда в файловой системе закончились inode.
Создадим файловую систему с небольшим количеством inode на виртуальном блочном устройстве, позаимствовав немного места с реальной файловой системы:
Монтируем файловую систему:
Забиваем ее до отказа файлами:
Проверяем:
Вывод:
Все, создавать новые файлы нельзя. Если сильно надо, выход есть. Понадобится свободное место, с файловой системой ext4.
Сделаем еще одно виртуальное блочное устройство, на нем файловую систему и пару папок для наших нужд.
Теперь главное:
Здесь монтируется специальная файловая система overlayfs.
Аргументы:
В терминологии
Проверяем:
Теперь посмотрим в up:
Вариант для экстремалов (можно задействовать оперативную память, если свободного места нет совсем):
Фактически, это
Теперь пара слов про overlayfs.
Функционал реализован модулем ядра, который, возможно, нужно включить:
Если вывод пустой, то:
Как видно из вышесказанного, особенность этой файловой системы - она работает с директориями а не с устройствами.
На этом все. Выражаю благодарность за идею статьи @AlexeyVictorovi4
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Ситуация неприятная и чаще всего выходом служит удаление "ненужных" файлов. Рассмотрим ситуацию, когда все файлы нужны, то есть удалять ничего не будем.
ㅤ
В качестве примера, смоделируем ситуацию, когда в файловой системе закончились inode.
Создадим файловую систему с небольшим количеством inode на виртуальном блочном устройстве, позаимствовав немного места с реальной файловой системы:
dd if=/dev/zero of=/home/user/fs.img count=1000 bs=4096K
mkfs.ext4 -N 512 /home/user/fs.img
Монтируем файловую систему:
mkdir newfs
mount /home/user/fs.img newfs/
Забиваем ее до отказа файлами:
touch file{1..501}Проверяем:
df -i newfs
Вывод:
[root@14 ~] df -i newfs/
/dev/loop6 512 512 0 100% /root/newfs
Все, создавать новые файлы нельзя. Если сильно надо, выход есть. Понадобится свободное место, с файловой системой ext4.
Сделаем еще одно виртуальное блочное устройство, на нем файловую систему и пару папок для наших нужд.
dd if=/dev/zero of=/home/user/newfs.img count=1500 bs=4096K
mkfs.ext4 /home/user/newfs.img
mount /home/user/newfs.img freespacefs
mkdir -p freespacefs/{up,service}
Теперь главное:
mount -t overlay overlay -olowerdir=newfs,upperdir=freespacefs/up,workdir=freespacefs/service newfs
Здесь монтируется специальная файловая система overlayfs.
Аргументы:
lowerdir - директория, которую расширяем. Может быть любой файловой системой, может быть смонтирована только на чтение. В терминологии overlayfs - нижний слой.upperdir - директория на файловой системе с поддержкой d-type (например, ext4).В терминологии
overlayfs верхний слой. В эту папку реально будут попадать результаты деятельности (новые файлы например) workdir- служебная директория, нужна для работы overlayfs. Должна находится на той же файловой системе, что и upperdir.Проверяем:
[root@14 ~] df -i newfs
overlay 376K 16 376K1% /root/newfs
занято 1 % inode.
[root@14 ~] df -i newfs
[root@14 ~] touch newfs/extrafile
[root@14 ~] ls newfs/
extrafile file125 file152 file1.....
(вывод обрезан, здесь 501 файл)
Теперь посмотрим в up:
[root@14 ~] ls freespacefs/up
extrafile
Вариант для экстремалов (можно задействовать оперативную память, если свободного места нет совсем):
[root@14 ~] mkdir ramfs
[root@14 ~] mount -t tmpfs tmpfs -osize=4G ramfs
[root@14 ~] mkdir ramfs/{up,work}
[root@14 ~] mount -t overlay overlay -\ olowerdir=newfs,upperdir=ramfs/up,workdir=ramfs/work newfs
[root@14 ~] df -h newfs/
overlay 7,8G 8,7M 7,8G 1% /root/newfs
Фактически, это
tmpfs, которая располагается в оперативной памяти, и стоит об этом помнить.Теперь пара слов про overlayfs.
Функционал реализован модулем ядра, который, возможно, нужно включить:
[root@14 tmp] lsmod | grep overlay
Если вывод пустой, то:
[root@14 tmp] modprobe overlay
Как видно из вышесказанного, особенность этой файловой системы - она работает с директориями а не с устройствами.
На этом все. Выражаю благодарность за идею статьи @AlexeyVictorovi4
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 109
Вечный вопрос — как сохранить правила iptables?
ㅤ
Вот навтыкал ты всяких безумных правил и цепочек через командную строку, радуешься. А после ребута все твои поделки к хуям улетучиваются.
И каждый раз ты идешь гуглить, как это решить. Жиза. Каждый раз, как в первый раз.
А делается всё просто, двумя командами:
Ладно, спиздел, нужно еще доставить:
Эта хуёвина автоматом создает файлы
А если у тебя длинный писюн, можно и от первых двух команд избавиться.
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
Просто открываешь напрямую файл
После этого не забываем дёрнуть слона за хобот:
Либо по старинке, добавляешь правила через терминал и затем делаешь:
Но в этом случае файлы
Саммари
1. Ставим
2. Пиздярим правила в терминале
3. Применяем
Как делаю я? У меня писюн длинный, поэтому сразу вношу все необходимое руками в
Такие дела, изучай.
🛠 #linux #security #iptables
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Вот навтыкал ты всяких безумных правил и цепочек через командную строку, радуешься. А после ребута все твои поделки к хуям улетучиваются.
И каждый раз ты идешь гуглить, как это решить. Жиза. Каждый раз, как в первый раз.
А делается всё просто, двумя командами:
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
Ладно, спиздел, нужно еще доставить:
sudo apt install iptables-persistent
Эта хуёвина автоматом создает файлы
/etc/iptables/rules.v4, /etc/iptables/rules.v6 и будет применять их при загрузке.А если у тебя длинный писюн, можно и от первых двух команд избавиться.
Просто открываешь напрямую файл
rules.v4/rules.v6 и прописываешь туда все свои хотелки. После этого не забываем дёрнуть слона за хобот:
systemctl restart netfilter-persistent
Либо по старинке, добавляешь правила через терминал и затем делаешь:
sudo netfilter-persistent save
Но в этом случае файлы
rules.v4/rules.v6 будут перезатерты, имей это ввиду если лез в них своими руками.Саммари
1. Ставим
iptables-persistent2. Пиздярим правила в терминале
3. Применяем
netfilter-persistent saveКак делаю я? У меня писюн длинный, поэтому сразу вношу все необходимое руками в
rules.v4/rules.v6, хотя это не есть бест-практика, не делай так.Такие дела, изучай.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
1 66
Вчера в посте я упомянул конфиги
ㅤ
Давай посмотрим что в других дистрибутивах происходит.
Debian / Ubuntu
Основной пакет → iptables-persistent / netfilter-persistent
RHEL / CentOS / Rocky / Alma (iptables-services)
Fedora (новые версии)
По умолчанию использует firewalld (поверх nftables). Если ставишь iptables-services:
Arch Linux / Manjaro
Из коробки iptables не сохраняет правила, обычно юзеры делают сами:
OpenSUSE / SLES
По умолчанию тоже firewalld, если ставить пакет iptables, правила обычно хранят в:
Astra Linux (Смоленск, Орёл и др. редакции)
Астра базируется на Debian, поэтому у неё схема как у Debian/Ubuntu:
РЕД ОС (RedOS)
RedOS базируется на RHEL/CentOS, поэтому там всё по «редхэту»:
Вроде основное осветил, если что-то проебал, забыл, затроил — пиши в комменты, поправим.
А вообще при возможности пользуйся облачным фаерволом, если страшно конфигурять iptables или руки растут из жопы.
🛠 #linux #security #iptables
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
iptables лишь для части дистрибутивов, Alex эту ситуацию в комментариях подметил верно.ㅤ
Давай посмотрим что в других дистрибутивах происходит.
Debian / Ubuntu
Основной пакет → iptables-persistent / netfilter-persistent
/etc/iptables/rules.v4
/etc/iptables/rules.v6
RHEL / CentOS / Rocky / Alma (iptables-services)
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Fedora (новые версии)
По умолчанию использует firewalld (поверх nftables). Если ставишь iptables-services:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Arch Linux / Manjaro
Из коробки iptables не сохраняет правила, обычно юзеры делают сами:
/etc/iptables/iptables.rules
/etc/iptables/ip6tables.rules
OpenSUSE / SLES
По умолчанию тоже firewalld, если ставить пакет iptables, правила обычно хранят в:
/etc/sysconfig/iptables
Astra Linux (Смоленск, Орёл и др. редакции)
Астра базируется на Debian, поэтому у неё схема как у Debian/Ubuntu:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
РЕД ОС (RedOS)
RedOS базируется на RHEL/CentOS, поэтому там всё по «редхэту»:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables
Вроде основное осветил, если что-то проебал, забыл, затроил — пиши в комменты, поправим.
А вообще при возможности пользуйся облачным фаерволом, если страшно конфигурять iptables или руки растут из жопы.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Настройка и работа с Taskwarrior
Как бы я не шлялся словно «портовая шлюха» по разным таск-трекерам, так и вернулся к истокам Taskwarrior (далее TW).
ㅤ
Почему? Потому что в других таск-трекерах у меня спустя пару недель начинает образовываться какая-то лапша ебаная, прям как с ансиблом. Ну и по итогу на все это кладется болт.
Из коробки TW выглядит достаточно хуёва, как и все остальное в Linux. Но я его допилил с помощью конфигов, избавился от лишнего и оставил только, то что действительно нужно мне.
Пост получился длинным, поэтому идем дочитывать в блог 👇
🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️
https://two.su/684om
🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️ 🅰️
🛠 #рабочиебудни #gtd
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Как бы я не шлялся словно «портовая шлюха» по разным таск-трекерам, так и вернулся к истокам Taskwarrior (далее TW).
ㅤ
Почему? Потому что в других таск-трекерах у меня спустя пару недель начинает образовываться какая-то лапша ебаная, прям как с ансиблом. Ну и по итогу на все это кладется болт.
Из коробки TW выглядит достаточно хуёва, как и все остальное в Linux. Но я его допилил с помощью конфигов, избавился от лишнего и оставил только, то что действительно нужно мне.
Пост получился длинным, поэтому идем дочитывать в блог 👇
https://two.su/684om
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5 32
Друзья и коллеги — С Днём Знаний!
Грех под это событие не напомнить про — Linux Factory.
ㅤ
За 1 месяц ты впитаешь необходимую базу, которая требуется, чтобы уйти с «завода» и вкатиться в айти на роль «девопс-инженера».
Короче. У меня появились свободные слоты и я готов взять на обучение еще 20-30 человек.
Цена временно снижена в 2 раза с5000р до 2500р.
Ты можешь пропить эти деньги, а можешь вложиться с умом и уже через месяц получать вкусную ЗП. Всё зависит от тебя, готов ли ты сделать шаг и что-то изменить.
Что внутри
— Никакой воды, только нужная информация
— Исключительно бест-практики
— Более 40ка уроков и домашних заданий
— Познаешь силу «Инфраструктура как код»
— Разберешь с docker и git
— Научишься писать пайплайны
— Настроишь мониторинг и алерты
— И многое другое…
Киллер-фичи
— Я твой личный ментор 1x1 (никаких групповых чатов)
— Вдумчивое кодревью ДЗ (обоснованные замечания)
— Нет дедлайнов (учишься когда захочешь)
— Можешь не сдавать домашки (двойки не ставлю)
— Задачи со звездочкой (для любителей посложнее)
— Можно пропускать темы и брать только нужные
— Избавишься от синдрома самозванца
⚪ Содержание курса и всех сезонов описал тут.
⚪ Подробнее о курсе можешь почитать тут.
⚪ А для сомневающихся добавил страницу с отзывами.
Кстати можешь глянуть пару (1 и 2) открытых уроков и сделать выводы, подойдет тебе все это или нет.
Вписаться в курс: @tormozilla_bot
если бот не отвечает, отправь ему повторно /start
По всем вопросам можешь писать сюда: @linuxfactorybot
Грех под это событие не напомнить про — Linux Factory.
ㅤ
За 1 месяц ты впитаешь необходимую базу, которая требуется, чтобы уйти с «завода» и вкатиться в айти на роль «девопс-инженера».
За год существования LF, через него прошло > 1000 человек. Больше половины учащихся успешно закончили курс и нашли свою первую хорошо оплачиваемую работу, которая им действительно нравится. LF это отличная инвестиция в своё будущее.
Короче. У меня появились свободные слоты и я готов взять на обучение еще 20-30 человек.
Цена временно снижена в 2 раза с
Ты можешь пропить эти деньги, а можешь вложиться с умом и уже через месяц получать вкусную ЗП. Всё зависит от тебя, готов ли ты сделать шаг и что-то изменить.
Что внутри
— Никакой воды, только нужная информация
— Исключительно бест-практики
— Более 40ка уроков и домашних заданий
— Познаешь силу «Инфраструктура как код»
— Разберешь с docker и git
— Научишься писать пайплайны
— Настроишь мониторинг и алерты
— И многое другое…
Киллер-фичи
— Я твой личный ментор 1x1 (никаких групповых чатов)
— Вдумчивое кодревью ДЗ (обоснованные замечания)
— Нет дедлайнов (учишься когда захочешь)
— Можешь не сдавать домашки (двойки не ставлю)
— Задачи со звездочкой (для любителей посложнее)
— Можно пропускать темы и брать только нужные
— Избавишься от синдрома самозванца
Кстати можешь глянуть пару (1 и 2) открытых уроков и сделать выводы, подойдет тебе все это или нет.
Вписаться в курс: @tormozilla_bot
если бот не отвечает, отправь ему повторно /start
По всем вопросам можешь писать сюда: @linuxfactorybot
Please open Telegram to view this post
VIEW IN TELEGRAM
11 44
Здрасти. Так, у нас тут баланс-батл проходил, давай посмотрим еще раз на посты, которые ребята прислали.
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
ㅤ
Ну и кто пропустил или забыл поставить «лайк» — самое время.
- Про дампы и postgres (98)
- Астра линукс и неочевидные нюансы (89)
- Про бомжей и authentication key (53)
- Живое вмешательство. File descriptors и GDB (103)
- Сетевой квест и 22 дырка (92)
- Учим Docker в SNAT (69)
- Парсинг сетевого оборудования (16)
- Про логи и systemd-cat (94)
- Деградация батареи в Linux (37)
- Организация бекапов 1С (34)
- Рубрика «упоротые однострочники» (53)
- Хакаем inode и добываем свободное место (100)
В скобках общее количество лайков на текущий момент. Завтра подведем итоги и выдадим донаты.
Всем огромное спасибо за участие, вы все большие молодцы!
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Ну и кто пропустил или забыл поставить «лайк» — самое время.
- Про дампы и postgres (98)
- Астра линукс и неочевидные нюансы (89)
- Про бомжей и authentication key (53)
- Живое вмешательство. File descriptors и GDB (103)
- Сетевой квест и 22 дырка (92)
- Учим Docker в SNAT (69)
- Парсинг сетевого оборудования (16)
- Про логи и systemd-cat (94)
- Деградация батареи в Linux (37)
- Организация бекапов 1С (34)
- Рубрика «упоротые однострочники» (53)
- Хакаем inode и добываем свободное место (100)
В скобках общее количество лайков на текущий момент. Завтра подведем итоги и выдадим донаты.
Всем огромное спасибо за участие, вы все большие молодцы!
Если я проебался и что-то упустил, маякните, пожалуйста Максу, добавим в список.
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 31
Подводим итоги #балансбатл:
ㅤ
Все «лайки» пересчитаны, получилось так:
Первое место: Живое вмешательство. File descriptors и GDB (124 реакции) от @AlbDVPs. (Донат — баланс-борд)
Второе место: Хакаем inode и добываем свободное место (116 реакций), автор @clovus. (Донат — 5000р)
Третье место: Про логи и systemd-cat (110 реакция), автор @a_glumov (Донат — 3000р)
🍻 Принимайте наши поздравления! 🍻
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
DevUps выбрал 2 поста, которые произвели на него впечатления.
Цитирую:
Как получить призы:
Сегодня к каждому из победителей придет Макс, запросит у вас вводные, ну а дальше дело в шляпе.
Всем кто принимал участие — огромнейшая благодарность, всем авторам постов лично жму руку, вы молодцы, что делитесь знаниями с другими. Это очень ценно! Спасибо вам ребята!
🛠 #балансбатл #людипишут
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ㅤ
Все «лайки» пересчитаны, получилось так:
Первое место: Живое вмешательство. File descriptors и GDB (124 реакции) от @AlbDVPs. (Донат — баланс-борд)
Второе место: Хакаем inode и добываем свободное место (116 реакций), автор @clovus. (Донат — 5000р)
Третье место: Про логи и systemd-cat (110 реакция), автор @a_glumov (Донат — 3000р)
И дополнительное призовое место от нашего коллеги DevUps, обещает задонатить кругленькую сумму за пост, который произведет впечатление на него лично.
DevUps выбрал 2 поста, которые произвели на него впечатления.
Цитирую:
Кароче, я выбрал 2 статьи ... Закончилось место на диске? Или же закончились inode? и Живое вмешательство. File descriptors и GDB. Надо будет как-то решить как им бабок заслать, по 5к получается.
Как получить призы:
Сегодня к каждому из победителей придет Макс, запросит у вас вводные, ну а дальше дело в шляпе.
Всем кто принимал участие — огромнейшая благодарность, всем авторам постов лично жму руку, вы молодцы, что делитесь знаниями с другими. Это очень ценно! Спасибо вам ребята!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
3 61
Мне прилетела интересная задача.
🔤 🔤 🔥 🔤 🔤 🔤 🔤
ТЗ: Сервер без GUI, к нему подключают usb-диск с NTFS и начинается автоматическое архивирование. Логин не требуется, сообщения выдаются на tty1.
Использовать будем штатные средства
1. Подключаем диск, и запоминаем UUID.
здесь FLASH - метка диска
ㅤ
создадим каталог для монтирования:
Дальше создаем 4 файла. Чтобы было проще, в каждом файле в начале коммент с названием файла.
После создания:
Как это работает:
При подключении диска usb-диска срабатывает UDEV правило
Сама
Если все условия совпадают,
Если используется архивирование с чередованием дисков - просто сделайте у дисков одинаковые метки:
👆 Если в mount не указать опцию
👆 Запустить скрипт через UDEV даже в фоне не получится, поскольку система вырубит его через 5 сек.
🛠 #linux #bash
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
ТЗ: Сервер без GUI, к нему подключают usb-диск с NTFS и начинается автоматическое архивирование. Логин не требуется, сообщения выдаются на tty1.
sudo apt install ntfs-3g # для монтирования ntfs
Использовать будем штатные средства
udev + systemd .1. Подключаем диск, и запоминаем UUID.
lsblk -f
sdc
└─sdc1
ntfs FLASH
1234567890ABCDEF
здесь FLASH - метка диска
1234567890ABCDEF - UUIDㅤ
создадим каталог для монтирования:
mkdir -p /media/usb_ntfs; chmod 777 /media/usb_ntfs
Дальше создаем 4 файла. Чтобы было проще, в каждом файле в начале коммент с названием файла.
После создания:
sudo systemctl daemon-reload
Как это работает:
При подключении диска usb-диска срабатывает UDEV правило
99-usb-mount.rules и пытается запустить службу autousbbackup.serviceautousbbackup.service пытается запустить media-usb_ntfs.mount, поскольку жестко он нее зависит.Сама
media-usb_ntfs.mount запустится только в том случае, если UUID диска будет 1234567890ABCDEF.Если все условия совпадают,
autousbbackup.service запустит скрипт autousbbackup.sh, внутри которого Вы напишите копирование или синхронизацию данных в каталог /media/usb_ntfs.Если используется архивирование с чередованием дисков - просто сделайте у дисков одинаковые метки:
sudo umount /dev/sdXN # где /dev/sdXN имя вашего NTFS-раздела.
sudo ntfslabel --new-serial=1234567890ABCDEF /dev/sdXN #задайте UUID
👆 Если в mount не указать опцию
nofail система будет тормозить при загрузке.👆 Запустить скрипт через UDEV даже в фоне не получится, поскольку система вырубит его через 5 сек.
#/etc/udev/rules.d/99-usb-mount.rules
SUBSYSTEM=="block", KERNEL=="sd*", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}="autousbbackup.service"
#/etc/systemd/system/media-usb_ntfs.mount
[Unit]
Description=Mount USB NTFS by UUID
[Mount]
What=/dev/disk/by-uuid/1234567890ABCDEF
Where=/media/usb_ntfs
Type=ntfs-3g
Options=defaults,big_writes,nofail,uid=1000,gid=1000
[Install]
WantedBy=multi-user.target
#/etc/systemd/system/autousbbackup.service
[Unit]
Description=Simple service autousbbackup
Requires=media-usb_ntfs.mount
After=media-usb_ntfs.mount
[Service]
Type=simple
ExecStart=/root/work/autousbbackup/autousbbackup.sh
[Install]
WantedBy=multi-user.target
#!/bin/bash
#/root/work/autousbbackup/autousbbackup.sh
declare -x PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
declare MOUNT_POINT=/media/usb_ntfs
declare TTY=/dev/tty1
declare DF='%(%Y%m%d-%H%M%S)T' #date format
declare LOG="$0.log"
exec &>"$LOG" # only one backup log
#exec &>>"$LOG" # all backups log
printf "$DF %s\n" -1 "START BACKUP"|tee "$TTY"
##############################################
sleep 3 # backup emulation
##############################################linux
printf "$DF %s\n" -1 "END BACKUP"|tee "$TTY"
#suicide, because service require mount point
systemd-mount --umount "$MOUNT_POINT"
—
Please open Telegram to view this post
VIEW IN TELEGRAM
6 77
Не уметь — не стыдно!
Вопрос из зала — есть ли какой-то тренажер или подобное, чтобы потыкать и понять как работает Kafka?
Конечно есть, у нас этого говна навалом!
Называется эта штука Kafka Visualisation.
Открываешь и тыкаешь хоть до усрачки. С ходу нихуя не понятно, но если вникнуть, то легко поймешь принцип работы.
А еще есть подобная штука для RabbitMQ, потыкать тут.
ㅤ
Изучай! Всех с пятницей и береги себя!
🛠 #services
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Вопрос из зала — есть ли какой-то тренажер или подобное, чтобы потыкать и понять как работает Kafka?
Конечно есть, у нас этого говна навалом!
Называется эта штука Kafka Visualisation.
Открываешь и тыкаешь хоть до усрачки. С ходу нихуя не понятно, но если вникнуть, то легко поймешь принцип работы.
А еще есть подобная штука для RabbitMQ, потыкать тут.
ㅤ
Изучай! Всех с пятницей и береги себя!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
12 86
Если ты выполняешь план, то тебе повысят план, а не зарплату!
Пытался вчера подружить taskwarrior и s3 для синхронизации, из коробки оно вроде как только с AWS работает.
Подкинул в конфиг параметры подключение к кастомному хранилищу. Ну думаю, какая в хуй разница.
Проверяю
Мде… Всёж правильно, эндпоинт пингуется, курлится, телнетится. Описывать весь момент дебага не буду, но там конкретный такой - метод тыка был.
Ну раз обычный «метод тыка» не помогает, расчехляем
Что делает команда:
И в выхлопе находим строчку:
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
😞 😔 😟 😕 🙁 ☹️ 😣 😖
😫 😩 🥺 😢 😭 😤 😠 😡
Ну ёб твою мать! А нахуй я тогда все эти приседания с конфигом устраивал, если эта падла хуй положила и по
То есть настройка
Ну хоть проблему нашли.
Отсюда вывод: с кастомным S3 напрямую taskwarrior работать не сможет. Даже если устроить подмену хостов или сделать хак через CNAME.
А как синхронизировать-то задачи? Ооо брат, я уже написал про это отдельный пост, чуть позже закину.
Хороших тебе выходных!
🛠 #strace #debug #taskwarrior
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Пытался вчера подружить taskwarrior и s3 для синхронизации, из коробки оно вроде как только с AWS работает.
Подкинул в конфиг параметры подключение к кастомному хранилищу. Ну думаю, какая в хуй разница.
sync.backend=s3
sync.aws.region=ru-7
sync.aws.bucket=taskwarrior
sync.aws.access_key_id=aed38518013b4ab
sync.aws.secret_access_key=992570bad57
sync.aws.endpoint=s3.ru-7.storage.selcloud.ru
Проверяю
task sync init, хуй там плавал, ошибка:unhandled error: dispatch failure: io error: error trying to connect: dns error: failed to lookup address information: Name or service not known: dns error: failed to lookup address information: Name or service not known: failed to lookup address information: Name or service not known
Мде… Всёж правильно, эндпоинт пингуется, курлится, телнетится. Описывать весь момент дебага не буду, но там конкретный такой - метод тыка был.
Ну раз обычный «метод тыка» не помогает, расчехляем
strace!strace -s 200 -f -e trace=network,connect,sendto,recvfrom task sync
Что делает команда:
-s 200 — печатать до 200 байт строковых аргументов (по умолчанию strace режет строки до 32 байт). Это важно, чтобы увидеть полный URL/hostname, который передаётся в syscalls.-f — следить не только за основным процессом, но и за всеми дочерними (fork/clone)-e trace=network, connect, sendto, recvfrom — ограничиваем вывод только сетевыми вызовами: socket, connect → создание сокетов и подключения (TCP/UDP). sendto / recvfrom → передача данных (обычно видно DNS-запросы, HTTP-заголовки и т.д.).И в выхлопе находим строчку:
taskwarrior.s3.ru-7.amazonaws.com.Ну ёб твою мать! А нахуй я тогда все эти приседания с конфигом устраивал, если эта падла хуй положила и по
task diagnostic никаких ошибок не вывело.То есть настройка
sync.aws.endpoint=… вообще не учитывается — клиент жёстко строит URL по схеме AWS.Ну хоть проблему нашли.
Strace все же достаточно пиздатый инструмент.Отсюда вывод: с кастомным S3 напрямую taskwarrior работать не сможет. Даже если устроить подмену хостов или сделать хак через CNAME.
А как синхронизировать-то задачи? Ооо брат, я уже написал про это отдельный пост, чуть позже закину.
Хороших тебе выходных!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
13 56
Дегенеративные модели
Получил на выходные от одного провайдера отличнейшее предложение, от которого трудно отказаться.
ВЕЧНЫЕ СЕРВЕРА!
ㅤ
Как работает эта модель — ты один раз оплачиваешь условные 10-30-50-100к рублей и получаешь VPS навсегда, до конца мать его жизни.
Звучит достаточно вкусно, но в каждой бочке меда есть ложка дегтя.
Вечного ничего не бывает.
Ну так, вот:
Покупая такой сервер, сервер не становится твоей собственностью. Ты по-прежнему выполняешь условия оферты, которую ты конечно же НЕ прочитал и просто протыкал далее → далее.
Открываем оферту и читаем:
Первый звоночек.
Я сталкивался с такой ситуацией в молодости и по глупости купил такой «вечный сервер» за 10к рублей. А через полгода с меня начали требовать абонентскую плату, а на мой ахуй мне было сказано — а вы оферту читали? Какие вопросы?
Пошел, почитал, а там черным по белому — извините, теперь ваш «вечный сервер» требует ежемесячной оплаты, потому что мы охуели и хотим больше денег.
Ладно, опыт получен. Прежде чем что-то бездумно покупать, вопрос нужно хотя бы немного заресерчить. И в 99% ты найдешь очень много подводных камней, о которых ты и не подозревал.
Второй звоночек.
Ладно, ты купил «вечный сервер» и потом хуяк! Скорость стала никакой. Идем в саппорт и требуем объяснений, в ответ получаем — ну дак в оферте же прописано.
При превышении 3ТБ трафика в месяц, для «вечных серверов», скорость пропускной полосы будет снижена до dialup’а. Вы превысили допустимы трафик, поэтому идете — нахуй и сосите жопу!
ВОТ ЭТО ПОВОРОТ!
😀 😃 😄 😁 😅 😂 🤣 😊
😇 🙂 🙃 😉 😌 😍 🥰 😘
😗 😙 😚 😋 😛 😝 😜 🤪
🤨 🧐 🤓 😎 🤩 🥳 😏 😒
😞 😔 😟 😕 🙁 ☹️ 😣 😖
😫 😩 🥺 😢 😭 😤 😠 😡
Третий звоночек.
Компания просто перестает существовать, либо ее банят за махинации и черные схемы. Всякое бывает. В этом случае ты просто теряешь доступ к своему «вечному серверу». Истории такие были, по крайней мере знаю две и оба раза я лишался доступа к серверам, благо были бэкапы.
Четвертый звоночек.
Для саппорта ты не приоритетный клиент, ты лох ебаный, которого уже облапошили, хуль на тебя время тратить, сам ебись со своими проблемами и «вечным сервером».
Выводы:
Да, компаниям это выгодно, в моменте заработать миллионы денег. Но для клиента это полная залупа, особенно если в одностороннем порядке меняется оферта и все делается, чтобы клиент сам отказался от услуг.
Деньги ведь с клиента уже получены, нахуй он нужен, еще и инфраструктурные ресурсы занимает. Вкорячим его в рамки и будем в уши ссать.
Всех под одну гребенку не ровняю, возможно на рынке и есть добросовестные поставщики услуг, респект им и уважуха! Но в любом случае «третий звоночек» никто не отменяет. Фактически «вечность» держится только на репутации и доброй воле провайдера.
Гарантий нет, это инвестиция в надежность чужого бизнеса.
Так что если тебе кто-то предлагает «вечный сервер» — шли его нахуй!
🛠 #рабочиебудни #hosting #server
—
✅ @bashdays ✅ @linuxfactory ✅ @blog
Получил на выходные от одного провайдера отличнейшее предложение, от которого трудно отказаться.
ВЕЧНЫЕ СЕРВЕРА!
ㅤ
Как работает эта модель — ты один раз оплачиваешь условные 10-30-50-100к рублей и получаешь VPS навсегда, до конца мать его жизни.
Звучит достаточно вкусно, но в каждой бочке меда есть ложка дегтя.
Вечного ничего не бывает.
Ну так, вот:
Покупая такой сервер, сервер не становится твоей собственностью. Ты по-прежнему выполняешь условия оферты, которую ты конечно же НЕ прочитал и просто протыкал далее → далее.
Открываем оферту и читаем:
Исполнитель вправе изменять условия договора, в одностороннем порядке. Изменения вступают в силу с даты публикации на сайте. Если клиент не согласен, он может идти на хуй и сосать жопу.
Первый звоночек.
Я сталкивался с такой ситуацией в молодости и по глупости купил такой «вечный сервер» за 10к рублей. А через полгода с меня начали требовать абонентскую плату, а на мой ахуй мне было сказано — а вы оферту читали? Какие вопросы?
Пошел, почитал, а там черным по белому — извините, теперь ваш «вечный сервер» требует ежемесячной оплаты, потому что мы охуели и хотим больше денег.
Ладно, опыт получен. Прежде чем что-то бездумно покупать, вопрос нужно хотя бы немного заресерчить. И в 99% ты найдешь очень много подводных камней, о которых ты и не подозревал.
Второй звоночек.
Ладно, ты купил «вечный сервер» и потом хуяк! Скорость стала никакой. Идем в саппорт и требуем объяснений, в ответ получаем — ну дак в оферте же прописано.
При превышении 3ТБ трафика в месяц, для «вечных серверов», скорость пропускной полосы будет снижена до dialup’а. Вы превысили допустимы трафик, поэтому идете — нахуй и сосите жопу!
ВОТ ЭТО ПОВОРОТ!
Третий звоночек.
Компания просто перестает существовать, либо ее банят за махинации и черные схемы. Всякое бывает. В этом случае ты просто теряешь доступ к своему «вечному серверу». Истории такие были, по крайней мере знаю две и оба раза я лишался доступа к серверам, благо были бэкапы.
Четвертый звоночек.
Для саппорта ты не приоритетный клиент, ты лох ебаный, которого уже облапошили, хуль на тебя время тратить, сам ебись со своими проблемами и «вечным сервером».
Выводы:
Да, компаниям это выгодно, в моменте заработать миллионы денег. Но для клиента это полная залупа, особенно если в одностороннем порядке меняется оферта и все делается, чтобы клиент сам отказался от услуг.
Деньги ведь с клиента уже получены, нахуй он нужен, еще и инфраструктурные ресурсы занимает. Вкорячим его в рамки и будем в уши ссать.
Всех под одну гребенку не ровняю, возможно на рынке и есть добросовестные поставщики услуг, респект им и уважуха! Но в любом случае «третий звоночек» никто не отменяет. Фактически «вечность» держится только на репутации и доброй воле провайдера.
Предложение о «вечных серверах» живёт только в маркетинговых материалах, но юридической фиксации в оферте нет. Получается, что «вечность» основана исключительно на доверии к провайдеру.
Если сервер нужен надолго, то «окупается» он через 12-36 месяцев. Ресурсы у сервера фиксированные, например 1Гб RAM сегодня ещё куда-нибудь сгодится, но через 3–5 лет такой сервер может быть слишком слабым. А апгрейд невозможен.
Гарантий нет, это инвестиция в надежность чужого бизнеса.
Так что если тебе кто-то предлагает «вечный сервер» — шли его нахуй!
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 92