В России заблокировали Linux! на время
Российские пользователи и разработчики потеряли доступ к git.kernel.org и другим связанным ресурсам. Проблемы, вероятно, возникли из-за работы технических средств противодействия угрозам (ТСПУ) на фоне замедления работы Telegram.
Роскомнадзор заявил, что не блокировал сервисы Linux в России, так что пока выдыхаем😮💨
LinuxCamp | #news
Российские пользователи и разработчики потеряли доступ к git.kernel.org и другим связанным ресурсам. Проблемы, вероятно, возникли из-за работы технических средств противодействия угрозам (ТСПУ) на фоне замедления работы Telegram.
Роскомнадзор заявил, что не блокировал сервисы Linux в России, так что пока выдыхаем
LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
😱42😁30❤6🔥2🙏2🙈2👾2🥱1
Notepad++ полгода распространял китайский вирус через обновления из-за взлома хостинга
Китайские хакеры более полугода имели возможность запускать бинарники на компьютерах пользователей Notepad++
Детали компрометации Notepad++:
- В июне 2025 года был взломан сервер обновлений Notepad++. Это позволило вредоносным бинарникам выполняться через механизм обновления утилиты.
- По словам исследователя в области кибербезопасности Кевина Бомонта, взлом был осуществлён группировкой «Funky Stamen».
- Автор Notepad++ также заявил, что, по всей вероятности, атака была проведена «китайской группой, спонсируемой государством».
- 18 ноября 2025 года разработчик Notepad++ выпустил обновление версии 8.8.8, в которое был включён патч для апдейтера в связи с «потенциальной проблемой перехвата».
- Окончательно выгнать хакеров удалось только 2 декабря.
Это тот редкий кейс, когда open-source проект пострадал не из-за собственного кода, а из-за слабого звена в цепочке поставки — хостинга. Полгода атака оставалась почти незаметной.
LinuxCamp | #news
Китайские хакеры более полугода имели возможность запускать бинарники на компьютерах пользователей Notepad++
Детали компрометации Notepad++:
- В июне 2025 года был взломан сервер обновлений Notepad++. Это позволило вредоносным бинарникам выполняться через механизм обновления утилиты.
- По словам исследователя в области кибербезопасности Кевина Бомонта, взлом был осуществлён группировкой «Funky Stamen».
- Автор Notepad++ также заявил, что, по всей вероятности, атака была проведена «китайской группой, спонсируемой государством».
- 18 ноября 2025 года разработчик Notepad++ выпустил обновление версии 8.8.8, в которое был включён патч для апдейтера в связи с «потенциальной проблемой перехвата».
- Окончательно выгнать хакеров удалось только 2 декабря.
Это тот редкий кейс, когда open-source проект пострадал не из-за собственного кода, а из-за слабого звена в цепочке поставки — хостинга. Полгода атака оставалась почти незаметной.
LinuxCamp | #news
😱23👍7❤6😁1🤔1
Я настроил свое рабочее пространство в терминале сервера
Люблю работать прямо на сервере: деплой, логи, конфиги, контейнеры. Раньше для этого я открывал несколько вкладок и подключался по SSH по два-три раза. Когда проектов и логов становится много это превращается в хаос. Закрыл вкладку - процесс умер. Переподключился - всё заново.
Решение:
Пересобрать это через tmux.
tmux создает отдельную сессию внутри SSH. Даже если соединение оборвалось, процессы продолжают жить. Ты возвращаешься на сервер, открываешь сессию, а там все на месте.
Создать сессию:
Окна и панели
Но самое полезное - это окна и панели.
Окна в tmux как вкладки, а панели разделяют экран внутри одного окна. Теперь у меня в одной сессии может быть окно с логами, второе с деплоем, третье с htop.
Разделить экран можно так:
Создавать и переключаться между окнами:
Если нужно уйти и оставить все работать:
Вернуться:
Вывод:
В итоге у меня один SSH, по одной сессии на проект, и внутри нее уже готовое рабочее окружение под меня. Также можно разделять по стендам: дев, прод, стейдж. Заходишь и продолжаешь с того же места.
LinuxCamp | #utils
Люблю работать прямо на сервере: деплой, логи, конфиги, контейнеры. Раньше для этого я открывал несколько вкладок и подключался по SSH по два-три раза. Когда проектов и логов становится много это превращается в хаос. Закрыл вкладку - процесс умер. Переподключился - всё заново.
Решение:
Пересобрать это через tmux.
tmux создает отдельную сессию внутри SSH. Даже если соединение оборвалось, процессы продолжают жить. Ты возвращаешься на сервер, открываешь сессию, а там все на месте.
Создать сессию:
tmux new -s backend
Окна и панели
Но самое полезное - это окна и панели.
Окна в tmux как вкладки, а панели разделяют экран внутри одного окна. Теперь у меня в одной сессии может быть окно с логами, второе с деплоем, третье с htop.
Разделить экран можно так:
Ctrl + b, % # вертикальный split
Ctrl + b, " # горизонтальный split
Создавать и переключаться между окнами:
Ctrl + b, c # создание окна
Ctrl + b, n # переключение между окнами
Если нужно уйти и оставить все работать:
Ctrl + b, d
Вернуться:
tmux attach -t backend
Вывод:
В итоге у меня один SSH, по одной сессии на проект, и внутри нее уже готовое рабочее окружение под меня. Также можно разделять по стендам: дев, прод, стейдж. Заходишь и продолжаешь с того же места.
LinuxCamp | #utils
👍38❤🔥8🔥6❤5
Временный секрет в Linux без следов
Иногда нужно сохранить пароль или токен на пару минут. Передать в скрипт, использовать в деплое, проверить подключение и не оставить его в history, tmp-файлах или с правами.
Сделаем временный файл, который доступен только владельцу и сам удалится.
Создаём безопасный файл
Сразу задаем строгие права и создаём уникальный файл:
umask 077 гарантирует, что файл будет доступен только владельцу.
mktemp создаёт файл атомарно и защищает от подмены в /tmp.
Права выставляются в момент создания.
Вводим секрет без history
Читаем данные напрямую из TTY и записываем в файл:
read -s не показывает ввод.
Переменная живет только в текущем shell.
В history ничего не попадет.
Автоудаление
Настроим удаление через 5 минут:
sleep задает задержку. shred -u перезаписывает и удаляет файл. Процесс уходит в фон, можно продолжать работу.
Даже если выйдешь из shell, удаление все равно произойдет.
Итог
Получаем временный файл с жесткими правами, без утечек в history и без мусора на диске.
LinuxCamp | #utils
Иногда нужно сохранить пароль или токен на пару минут. Передать в скрипт, использовать в деплое, проверить подключение и не оставить его в history, tmp-файлах или с правами.
Сделаем временный файл, который доступен только владельцу и сам удалится.
Создаём безопасный файл
Сразу задаем строгие права и создаём уникальный файл:
umask 077
SECRET_FILE=$(mktemp /tmp/secret.XXXXXX)
umask 077 гарантирует, что файл будет доступен только владельцу.
mktemp создаёт файл атомарно и защищает от подмены в /tmp.
Права выставляются в момент создания.
Вводим секрет без history
Читаем данные напрямую из TTY и записываем в файл:
read -s SECRET
printf "%s\n" "$SECRET" > "$SECRET_FILE"
read -s не показывает ввод.
Переменная живет только в текущем shell.
В history ничего не попадет.
Автоудаление
Настроим удаление через 5 минут:
(sleep 300; shred -u "$SECRET_FILE") &
sleep задает задержку. shred -u перезаписывает и удаляет файл. Процесс уходит в фон, можно продолжать работу.
Даже если выйдешь из shell, удаление все равно произойдет.
Итог
Получаем временный файл с жесткими правами, без утечек в history и без мусора на диске.
LinuxCamp | #utils
👍37❤13🔥11😁3✍2👌1
В 2004 году Sun Fire E25K (UNIX-сервер, мейнфрейм-класс) был самым топом в мире вычислений.
Это была самая большая Unix-машина, которую вообще можно было купить за деньги (около $2 млн в максимальной конфигурации)
Что по мощностям:
• 36 процессоров UltraSPARC IV (72 ядра)
• 576 ГБ ОЗУ
• 18 полностью hot-swap плат CPU/памяти
• гигабитный Ethernet и Fibre Channel HBA
• резервированные блоки питания и зоны охлаждения, энергопотребление – около 15 кВт
Сейчас это все, конечно, смешно, но тогда равных не было😳
LinuxCamp
Это была самая большая Unix-машина, которую вообще можно было купить за деньги (около $2 млн в максимальной конфигурации)
Что по мощностям:
• 36 процессоров UltraSPARC IV (72 ядра)
• 576 ГБ ОЗУ
• 18 полностью hot-swap плат CPU/памяти
• гигабитный Ethernet и Fibre Channel HBA
• резервированные блоки питания и зоны охлаждения, энергопотребление – около 15 кВт
Сейчас это все, конечно, смешно, но тогда равных не было
LinuxCamp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥14❤11
Говори с Linux. Буквально.
Vocalinux - это CLI утилита для Linux, которая слушает микрофон, распознает речь и вставляет результат как обычный текст в активное окно.
Это работает в терминале, редакторе, браузере, где угодно, потому что по сути происходит "ввод с клавиатуры", только голосом.
Чем распознает и что умеет
В репозитории заявлена поддержка нескольких движков распознавания, включая whisper.cpp как основной вариант, а также альтернативы вроде Whisper и Vosk.
Утилита ориентирована на локальную работу и не требует облачного сервиса как обязательного условия.
Как правильно воспринимать результат
Vocalinux не "управляет Linux", он печатает распознанный текст туда, где стоит курсор.
Поэтому для терминала самый прямой сценарий это произнести команду так, чтобы она распозналась текстом, а выполнение уже делает сам shell после нажатия Enter.
Например сказать:
и команда вставится в поле ввода
Вывод
Vocalinux полезен как hands free ввод текста, а не как голосовой ассистент, который понимает смысл фраз и сам строит команды.
LinuxCamp | #utils
Vocalinux - это CLI утилита для Linux, которая слушает микрофон, распознает речь и вставляет результат как обычный текст в активное окно.
Это работает в терминале, редакторе, браузере, где угодно, потому что по сути происходит "ввод с клавиатуры", только голосом.
голос → распознавание → текст → вставка в активное окно
Чем распознает и что умеет
В репозитории заявлена поддержка нескольких движков распознавания, включая whisper.cpp как основной вариант, а также альтернативы вроде Whisper и Vosk.
Утилита ориентирована на локальную работу и не требует облачного сервиса как обязательного условия.
vocalinux --help
Как правильно воспринимать результат
Vocalinux не "управляет Linux", он печатает распознанный текст туда, где стоит курсор.
Поэтому для терминала самый прямой сценарий это произнести команду так, чтобы она распозналась текстом, а выполнение уже делает сам shell после нажатия Enter.
Например сказать:
docker ps
и команда вставится в поле ввода
Вывод
Vocalinux полезен как hands free ввод текста, а не как голосовой ассистент, который понимает смысл фраз и сам строит команды.
LinuxCamp | #utils
👍23🤔6🔥5😁5🥴4❤1
Параллельная разработка без git checkout
Есть интересная CLI-утилита - worktrunk.
Она упрощает работу с git worktree - встроенной возможностью Git, которая позволяет держать несколько веток одного репозитория одновременно в разных папках.
В чем проблема обычного Git. Обычно workflow такой:
Но если нужно:
начинаются постоянные checkout, stash и переключения.
Что решает worktrunk
Утилита делает удобным использование git worktree.
Создать отдельную рабочую папку для ветки:
Git создаст новую директорию:
Теперь можно держать несколько веток открытыми, запускать разные версии проекта, не делать постоянные checkout
Почему это особенно актуально сейчас
С появлением AI-агентов разработка все чаще становится параллельной.
Например:
Каждый агент работает в своей ветке и своей директории. Агенты могут спокойно выполнять задачи параллельно, не мешая друг другу.
Вывод
git worktree позволяет иметь один репозиторий, несколько веток и несколько рабочих директорий, а CLI вроде worktrunk просто делает эту возможность Git намного удобнее.
LinuxCamp | #utils
Есть интересная CLI-утилита - worktrunk.
Она упрощает работу с git worktree - встроенной возможностью Git, которая позволяет держать несколько веток одного репозитория одновременно в разных папках.
В чем проблема обычного Git. Обычно workflow такой:
git checkout feature-a
# работаем
git checkout main
# возвращаемся
git checkout feature-b
Но если нужно:
* держать несколько веток одновременно
* тестировать несколько фич
* работать с несколькими PR
* запускать разные версии сервиса
начинаются постоянные checkout, stash и переключения.
Что решает worktrunk
Утилита делает удобным использование git worktree.
Создать отдельную рабочую папку для ветки:
wt create feature-auth
Git создаст новую директорию:
repo/
repo-feature-auth/
Теперь можно держать несколько веток открытыми, запускать разные версии проекта, не делать постоянные checkout
Почему это особенно актуально сейчас
С появлением AI-агентов разработка все чаще становится параллельной.
Например:
repo-main -> основная работа
repo-agent-auth -> агент пишет фичу
repo-agent-refactor -> агент делает рефактор
repo-agent-tests -> агент генерирует тесты
Каждый агент работает в своей ветке и своей директории. Агенты могут спокойно выполнять задачи параллельно, не мешая друг другу.
Вывод
git worktree позволяет иметь один репозиторий, несколько веток и несколько рабочих директорий, а CLI вроде worktrunk просто делает эту возможность Git намного удобнее.
LinuxCamp | #utils
👍14🤔8🔥4⚡2❤2❤🔥1😍1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁96👍11🔥6🤣4❤3🤔1🤯1🥴1
Как пишут интерфейсы для терминала на Rust
Многие популярные CLI-утилиты имеют интерактивный интерфейс прямо в терминале.
Такие интерфейсы называют TUI (Terminal UI) - панели, таблицы, графики и списки, которые работают прямо в терминале по SSH. В Rust для этого часто используют библиотеку Ratatui.
Что умеет Ratatui
Это набор виджетов для терминальных интерфейсов:
Пример создания панели:
После этого интерфейс рендерится прямо в терминал.
Почему TUI снова популярны
Терминальные интерфейсы имеют несколько преимуществ:
Поэтому всё больше CLI-утилит делают не просто вывод текста, а полноценный интерфейс в терминале.
Вывод
Ratatui - библиотека на Rust, которая позволяет писать интерактивные интерфейсы прямо в терминале. Именно на таких инструментах строятся современные TUI-утилиты вроде lazygit и k9s.
LinuxCamp | #utils
Многие популярные CLI-утилиты имеют интерактивный интерфейс прямо в терминале.
Такие интерфейсы называют TUI (Terminal UI) - панели, таблицы, графики и списки, которые работают прямо в терминале по SSH. В Rust для этого часто используют библиотеку Ratatui.
Что умеет Ratatui
Это набор виджетов для терминальных интерфейсов:
* таблицы
* списки
* графики
* вкладки
* прогресс-бары
* панели и layout
Пример создания панели:
use ratatui::widgets::{Block, Borders};
let block = Block::default()
.title("Dashboard")
.borders(Borders::ALL);
После этого интерфейс рендерится прямо в терминал.
Почему TUI снова популярны
Терминальные интерфейсы имеют несколько преимуществ:
* работают по SSH
* почти не требуют ресурсов
* идеально подходят для DevOps
* удобны для серверных инструментов
Поэтому всё больше CLI-утилит делают не просто вывод текста, а полноценный интерфейс в терминале.
Вывод
Ratatui - библиотека на Rust, которая позволяет писать интерактивные интерфейсы прямо в терминале. Именно на таких инструментах строятся современные TUI-утилиты вроде lazygit и k9s.
LinuxCamp | #utils
👍22❤7🔥5
Шпаргалка про доступы в Linux: ACL
Зачем ACL, если есть chmod
chmod умеет только "владелец, группа, остальные". ACL нужен, когда надо выдать права конкретному пользователю или группе точечно, не трогая владельца и не создавая отдельную группу под каждый кейс. Проверить, есть ли ACL у файла, можно сразу командой.
Выдать доступ конкретному юзеру
Дать пользователю alice чтение и запись на файл, не меняя chmod. Снять правило можно отдельной командой, чтобы не путаться потом в том, почему у него есть доступ.
Дефолтные ACL для папки
Если нужно, чтобы все новые файлы в каталоге автоматически получали права, задаётся default ACL на директорию. Это частая история для общих папок, где люди создают файлы, а доступ должен быть стабильным.
Вывод:
ACL это точечные права для файлов без плясок с группами. Если видишь странный доступ, не забывай смотреть getfacl, помимо ls -l.
LinuxCamp | #utils
Зачем ACL, если есть chmod
chmod умеет только "владелец, группа, остальные". ACL нужен, когда надо выдать права конкретному пользователю или группе точечно, не трогая владельца и не создавая отдельную группу под каждый кейс. Проверить, есть ли ACL у файла, можно сразу командой.
getfacl file.txt
Выдать доступ конкретному юзеру
Дать пользователю alice чтение и запись на файл, не меняя chmod. Снять правило можно отдельной командой, чтобы не путаться потом в том, почему у него есть доступ.
setfacl -m u:alice:rw file.txt
setfacl -x u:alice file.txt
Дефолтные ACL для папки
Если нужно, чтобы все новые файлы в каталоге автоматически получали права, задаётся default ACL на директорию. Это частая история для общих папок, где люди создают файлы, а доступ должен быть стабильным.
setfacl -m d:u:alice:rwX -m u:alice:rwX /shared
getfacl /shared
Вывод:
ACL это точечные права для файлов без плясок с группами. Если видишь странный доступ, не забывай смотреть getfacl, помимо ls -l.
LinuxCamp | #utils
🔥27👍16❤4
Atuin: история команд, которую реально можно найти
Что это и чем лучше обычного history
Atuin заменяет стандартный history на нормальный поиск по командам. Он хранит команды в базе, умеет искать по подстроке и фильтровать по каталогу, хосту и времени, а не просто листать "последние 500 строк".
Установка и подключение к shell
Ставишь бинарник и добавляешь инициализацию в свой shell. После этого стрелка вверх начинает работать через Atuin, плюс появляется интерактивный поиск по истории.
Как пользоваться
Самый частый сценарий: забыл точную команду, помнишь кусок или контекст. Открываешь поиск и находишь ровно то, что ты уже делал. Это особенно полезно для длинных команд с kubectl, docker, ssh, rsync, openssl.
Вывод
Atuin превращает историю команд из помойки в инструмент, который экономит время каждый день.
LinuxCamp | #utils
Что это и чем лучше обычного history
Atuin заменяет стандартный history на нормальный поиск по командам. Он хранит команды в базе, умеет искать по подстроке и фильтровать по каталогу, хосту и времени, а не просто листать "последние 500 строк".
команда → сохраняется → индексируется → находится за секунды
Установка и подключение к shell
Ставишь бинарник и добавляешь инициализацию в свой shell. После этого стрелка вверх начинает работать через Atuin, плюс появляется интерактивный поиск по истории.
atuin init bash >> ~/.bashrc
source ~/.bashrc
Как пользоваться
Самый частый сценарий: забыл точную команду, помнишь кусок или контекст. Открываешь поиск и находишь ровно то, что ты уже делал. Это особенно полезно для длинных команд с kubectl, docker, ssh, rsync, openssl.
atuin search "kubectl port-forward"
Вывод
Atuin превращает историю команд из помойки в инструмент, который экономит время каждый день.
LinuxCamp | #utils
🔥16👍6❤5🤔1
fzf-tab: автокомплит через tab в терминале
Что это такое
fzf-tab - это плагин для zsh, который прокачивает Tab completion. Вместо “вставило первый вариант и молись” ты получаешь список вариантов и можешь выбрать нужный через fzf. Особенно приятно на путях, git ветках, kubectl контекстах, ssh хостах и пакетах.
Установка и включение
Нужны zsh, fzf и менеджер плагинов (чаще всего zinit или oh-my-zsh). С zinit установка выглядит так.
Можно также просто склонить плагин и подключить в ~/.zshrc:
Как работать
Пишешь команду, жмёшь Tab и выбираешь точное совпадение, а не листаешь по кругу. Для новичка это сразу минус раздражение от автодополнения, для продвинутого это ускорение на проектах с длинными путями и кучей контекстов.
LinuxCamp | #utils
Что это такое
fzf-tab - это плагин для zsh, который прокачивает Tab completion. Вместо “вставило первый вариант и молись” ты получаешь список вариантов и можешь выбрать нужный через fzf. Особенно приятно на путях, git ветках, kubectl контекстах, ssh хостах и пакетах.
Tab → список вариантов → fzf выбор → подстановка в команду
Установка и включение
Нужны zsh, fzf и менеджер плагинов (чаще всего zinit или oh-my-zsh). С zinit установка выглядит так.
zinit light Aloxaf/fzf-tab
Можно также просто склонить плагин и подключить в ~/.zshrc:
sudo apt install fzf
git clone https://github.com/Aloxaf/fzf-tab ~/.zsh/fzf-tab
source ~/.zsh/fzf-tab/fzf-tab.plugin.zsh
exec zsh
Как работать
Пишешь команду, жмёшь Tab и выбираешь точное совпадение, а не листаешь по кругу. Для новичка это сразу минус раздражение от автодополнения, для продвинутого это ускорение на проектах с длинными путями и кучей контекстов.
cd /var/www/ # жмёшь Tab и выбираешь нужный каталог через fzf
LinuxCamp | #utils
❤12🔥10👌2
Эйджизм дошел и до Linux
В Калифорнии с 1 января 2027 года все операционные системы, включая Linux, обязаны проверять возраст пользователей при создании аккаунта.
Система сортирует на четыре группы: до 13, 13–16, 16–18 и 18+. Любое приложение сможет запросить эту категорию через API.
Если компания проигнорирует API и допустит ребёнка куда не следует, её оштрафуют: 2500$ за случайное нарушение и 7500$ за умышленное — с каждого пострадавшего ребёнка.
Дистрибутивы Linux Ubuntu и Elementary OS уже думают над текм, как реализовать функциональность проверки возраста (для всех пользовательских аккаунтов в ОС), чтобы соответствовать новому закону штата Калифорния.
Текущее предложение – добавить новый D-Bus-интерфейс (org.freedesktop.AgeVerification), что потенциально затронет все Linux-системы.
LinuxCamp | #news
В Калифорнии с 1 января 2027 года все операционные системы, включая Linux, обязаны проверять возраст пользователей при создании аккаунта.
Система сортирует на четыре группы: до 13, 13–16, 16–18 и 18+. Любое приложение сможет запросить эту категорию через API.
Если компания проигнорирует API и допустит ребёнка куда не следует, её оштрафуют: 2500$ за случайное нарушение и 7500$ за умышленное — с каждого пострадавшего ребёнка.
Дистрибутивы Linux Ubuntu и Elementary OS уже думают над текм, как реализовать функциональность проверки возраста (для всех пользовательских аккаунтов в ОС), чтобы соответствовать новому закону штата Калифорния.
«Сейчас мы изучаем, как реализовать API, который будет соответствовать требованиям закона и при этом не станет катастрофой для приватности» — Аарон Рейнболт, член Ubuntu Community Council.
Текущее предложение – добавить новый D-Bus-интерфейс (org.freedesktop.AgeVerification), что потенциально затронет все Linux-системы.
LinuxCamp | #news
💊43😁17👍7🤯4
gping: ping, который показывает график
Зачем он нужен
Обычный ping даёт цифры, но по ним сложно быстро понять картину: есть ли спайки, дрожание задержки, редкие провалы. gping делает то же самое, но рисует график задержек прямо в терминале, и сразу видно стабильность канала.
Как поставить и запустить
Ставится как обычная утилита, дальше просто указываешь хост или IP. Можно пинговать несколько целей одновременно и сравнить, где хуже.
Как читать график
Каждая точка это RTT, а зубцы показывают джиттер. Если линия ровная, сеть стабильна. Если есть редкие пики, значит где-то очереди или перегрузка. Если появляются дыпы, значит потери или проблемы с маршрутом.
Вывод
gping удобен как быстрая диагностика сети без Wireshark и без угадывания по цифрам из ping.
LinuxCamp | #utils
Зачем он нужен
Обычный ping даёт цифры, но по ним сложно быстро понять картину: есть ли спайки, дрожание задержки, редкие провалы. gping делает то же самое, но рисует график задержек прямо в терминале, и сразу видно стабильность канала.
gping 1.1.1.1
Как поставить и запустить
Ставится как обычная утилита, дальше просто указываешь хост или IP. Можно пинговать несколько целей одновременно и сравнить, где хуже.
# Debian/Ubuntu (часто через cargo)
cargo install gping
gping google.com 1.1.1.1 8.8.8.8
Как читать график
Каждая точка это RTT, а зубцы показывают джиттер. Если линия ровная, сеть стабильна. Если есть редкие пики, значит где-то очереди или перегрузка. Если появляются дыпы, значит потери или проблемы с маршрутом.
ровно = стабильно
пики = джиттер или очереди
пропуски = потери или таймауты
Вывод
gping удобен как быстрая диагностика сети без Wireshark и без угадывания по цифрам из ping.
LinuxCamp | #utils
👍28🔥8👌5❤1🌚1
age: шифрование файлов без лишних сущностей
Зачем оно нужно
age - это утилита для шифрования файлов. Когда нужно хранить .env, дамп базы или конфиги в репозитории, пересылать их между серверами или просто держать на диске, проще зашифровать файл, чем городить отдельные хранилища. age работает с публичным и приватным ключом, без сертификатов и сложных форматов.
Генерация ключей и шифрование
Сначала создаёшь ключевую пару и берёшь публичный ключ. Шифруешь файл публичным ключом, расшифровываешь приватным. В репозитории обычно хранится только *.age, приватный ключ хранится отдельно.
Практика для серверов и команд
Удобный сценарий: зашифровал конфиг, положил в git или отправил на сервер, а на сервере расшифровал ключом, который лежит в защищённом месте. Чтобы не оставлять открытый файл на диске, можно расшифровать в stdout и сразу передать дальше в команду.
Вывод
age - это простой способ держать секреты в файлах, не превращая задачу в отдельный проект.
LinuxCamp | #utils
Зачем оно нужно
age - это утилита для шифрования файлов. Когда нужно хранить .env, дамп базы или конфиги в репозитории, пересылать их между серверами или просто держать на диске, проще зашифровать файл, чем городить отдельные хранилища. age работает с публичным и приватным ключом, без сертификатов и сложных форматов.
файл → age encrypt → файл.age → age decrypt → файл
Генерация ключей и шифрование
Сначала создаёшь ключевую пару и берёшь публичный ключ. Шифруешь файл публичным ключом, расшифровываешь приватным. В репозитории обычно хранится только *.age, приватный ключ хранится отдельно.
age-keygen -o key.txt
age-keygen -y key.txt > key.pub
age -r "$(cat key.pub)" -o .env.age .env
age -d -i key.txt -o .env .env.age
Практика для серверов и команд
Удобный сценарий: зашифровал конфиг, положил в git или отправил на сервер, а на сервере расшифровал ключом, который лежит в защищённом месте. Чтобы не оставлять открытый файл на диске, можно расшифровать в stdout и сразу передать дальше в команду.
age -d -i key.txt .env.age | docker compose --env-file /dev/stdin up -d
Вывод
age - это простой способ держать секреты в файлах, не превращая задачу в отдельный проект.
LinuxCamp | #utils
👍20🔥9❤5
rsync по SSH: быстрые копии без ошибок
Быстро и с прогрессом
Когда копируешь проект на сервер, scp часто делает тупую заливку всего подряд. rsync копирует только изменения, умеет докачивать и показывает прогресс. Самый базовый рабочий вариант для папки.
Исключения и чистая синхронизация
Часто не нужно тащить node_modules, .git, кеши и сборки. Это проще делать через --exclude. А если хочешь, чтобы на сервере стало ровно как локально, добавляешь --delete, тогда удалятся файлы, которых уже нет у тебя.
Быстрее на больших деревьях
Если файлов очень много, ускоряет сжатие и правильный SSH. Часто достаточно включить компрессию и указать быстрый шифр, если у тебя закрытая сеть и упор в CPU.
Вывод
rsync по SSH это рабочий инструмент для деплоя и миграций, где важны скорость, контроль и предсказуемость.
LinuxCamp | #utils
Быстро и с прогрессом
Когда копируешь проект на сервер, scp часто делает тупую заливку всего подряд. rsync копирует только изменения, умеет докачивать и показывает прогресс. Самый базовый рабочий вариант для папки.
rsync -avh --info=progress2 ./project/ user@server:/opt/project/
Исключения и чистая синхронизация
Часто не нужно тащить node_modules, .git, кеши и сборки. Это проще делать через --exclude. А если хочешь, чтобы на сервере стало ровно как локально, добавляешь --delete, тогда удалятся файлы, которых уже нет у тебя.
rsync -avh --info=progress2 \
--exclude '.git' --exclude 'node_modules' --exclude 'dist' \
--delete \
./project/ user@ip:/opt/project/
Быстрее на больших деревьях
Если файлов очень много, ускоряет сжатие и правильный SSH. Часто достаточно включить компрессию и указать быстрый шифр, если у тебя закрытая сеть и упор в CPU.
rsync -avh --info=progress2 -z \
-e "ssh -T -c aes128-gcm@openssh.com" \
./project/ user@ip:/opt/project/
Вывод
rsync по SSH это рабочий инструмент для деплоя и миграций, где важны скорость, контроль и предсказуемость.
LinuxCamp | #utils
👍38🔥14❤6