Как быстро спрятать содержимое каталога без удаления файлов!
Иногда нужно быстро убрать содержимое каталога из системы, проверить поведение приложения, спрятать данные, не трогая их физически.
В Linux есть способ
Каталог
Процессы с уже открытыми файлами (FD) продолжат работать с ними, а новые обращения увидят пустой каталог.
Чтобы вернуть всё обратно:
Если
🔥
🚪 Linux Ready | #совет
Иногда нужно быстро убрать содержимое каталога из системы, проверить поведение приложения, спрятать данные, не трогая их физически.
В Linux есть способ
bind-mount:sudo mount --bind /tmp/empty /var/www/html
Каталог
/var/www/html становится пустым, но файлы остаются на диске, просто скрыты другим бинд-моунтом.Процессы с уже открытыми файлами (FD) продолжат работать с ними, а новые обращения увидят пустой каталог.
Чтобы вернуть всё обратно:
sudo umount /var/www/html
Если
umount блокируется процессами в пути, используйте umount -l (lazy) или предварительно проверьте, что держит каталог.mount --bind - быстрый переключатель состояния для тестов, A/B конфигураций и временных экспериментов в проде с минимальным риском для данных на диске.Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍12🔥9
Например, DNS переводит домены в IP-адреса, HTTPS отвечает за безопасное соединение с сайтами и API, а SSH позволяет безопасно подключаться к серверам.
На картинке — сетевые сервисы, их протоколы и стандартные порты, которые постоянно встречаются в backend, DevOps и инфраструктурной работе.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥10🤝6❤5👎2
Этому каналу всего полгода, спасибо каждому за поддержку. Цель на новый год: набрать более 25 тысяч подписчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤45👍22🔥14🤝2
Открываем ISO-образы в Linux без распаковки!
ISO монтируются как обычные каталоги через loop-устройство, что позволяет просматривать структуру диска и копировать файлы без изменения самого образа.
Монтирование в режиме только для чтения:
Проверка монтирования и просмотр содержимого:
Копирование файлов с сохранением доступных в образе атрибутов:
Сохранение прав, симлинков и расширенных атрибутов зависит от наличия поддержки Rock Ridge/Joliet в самом ISO. Ключ
Размонтирование:
Shell-функция для частого использования с автоматической очисткой:
Вызов:
🔥 Образ подключается в
🚪 Linux Ready | #практика
ISO монтируются как обычные каталоги через loop-устройство, что позволяет просматривать структуру диска и копировать файлы без изменения самого образа.
Монтирование в режиме только для чтения:
sudo mkdir -p /mnt/iso
sudo mount -o loop,ro image.iso /mnt/iso
Проверка монтирования и просмотр содержимого:
findmnt /mnt/iso
ls /mnt/iso
Копирование файлов с сохранением доступных в образе атрибутов:
cp -a /mnt/iso ~/iso-copy/
Сохранение прав, симлинков и расширенных атрибутов зависит от наличия поддержки Rock Ridge/Joliet в самом ISO. Ключ
-a копирует только те метаданные, которые реально присутствуют и доступны.Размонтирование:
cd ~
sudo umount /mnt/iso
Shell-функция для частого использования с автоматической очисткой:
mountiso() {
local dir
dir=$(sudo mktemp -d /tmp/iso-XXXXXX)
sudo mount -o loop,ro "$1" "$dir" && cd "$dir"
echo "Для размонтирования выполните: sudo umount $dir && sudo rmdir $dir"
}Вызов:
mountiso ./ubuntu-24.04.iso
ro и остаётся неизменным. В контейнерах нужны CAP_SYS_ADMIN и доступ к /dev/loop* или запуск с --privileged.Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤15🤝7
Как узнать, какие shared-библиотеки фактически использует процесс?
Хочешь понять, какие .so библиотеки реально загружены в память процесса, без ldd, lsof и сторонних утилит?
Нужно убедиться, что приложение использует именно нужную версию библиотеки?
Можно быстро увидеть, не была ли библиотека подменена или загружена через окружение:
🔥 maps отражает что уже загружено в память в момент проверки. Если либы нет — она ещё не загружена или может подгрузиться позже через
🚪 Linux Ready | #совет
Хочешь понять, какие .so библиотеки реально загружены в память процесса, без ldd, lsof и сторонних утилит?
sudo grep "\.so" /proc/1234/maps
/proc/<PID>/maps показывает фактические file-backed mmap’ы, включая ELF shared objects.Нужно убедиться, что приложение использует именно нужную версию библиотеки?
grep "/lib/x86_64-linux-gnu/libssl.so" /proc/1234/maps
Можно быстро увидеть, не была ли библиотека подменена или загружена через окружение:
grep "LD_PRELOAD=" /proc/1234/environ
dlopen().Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥11👍10
Например,
ssh -L открывает локальный порт и направляет трафик через SSH на удалённый сервис, а подключение через bastion даёт безопасный доступ к сервисам в приватной сети без public IP.На картинке — варианты port forwarding, плюс схема, как трафик идёт от SSH-клиента к внутреннему веб-серверу.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥12👍9
Проверим, что именно подставит shell в *.log!
Включаем режим, чтобы при отсутствии совпадений маска не оставалась строкой
Печатаем точный список аргументов, которые реально подставятся (включая пробелы и спецсимволы):
Возвращаем настройку обратно, чтобы не менять поведение интерактивной сессии:
🔥 Так проверяем ровно то, что передастся в команду, без
🚪 Linux Ready | #совет
Включаем режим, чтобы при отсутствии совпадений маска не оставалась строкой
*.log:shopt -s nullglob
Печатаем точный список аргументов, которые реально подставятся (включая пробелы и спецсимволы):
printf '%q\n' -- *.log
%q выводит имя так, как его безопасно повторить в shell.Возвращаем настройку обратно, чтобы не менять поведение интерактивной сессии:
shopt -u nullglob
ls (который форматирует вывод) и без пайпов, которые ломаются на пробелах/переводах строк.Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥8👍7🤝2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Этот репозиторий включает лучшие практики и команды для Linux/macOS терминала. Здесь собраны приемы, комбинации CLI-утилит, практики, которые помогают работать быстрее, искать ошибки, обрабатывать данные и автоматизировать рутинные задачи. Отличный ресурс, чтобы повысить эффективность работы.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤9🔥7
Как быстро поднять HTTP-шаринг директории одной командой!
В Linux можно за секунду превратить любую папку в HTTP-файлообменник, встроенным модулем Python. Помогает, когда нужно быстро передать файлы в сети или проверить статику фронта.
Нужен список файлов в браузере с автоматической навигацией? Он уже там:
Если хотите, чтобы сервер слушал только
Нужно запустить и получить
Хотите скачать всю директорию одной командой на другой машине?
🔥 Рекурсивно, без выхода за пределы папки и без лишних путей.
🚪 Linux Ready | #совет
В Linux можно за секунду превратить любую папку в HTTP-файлообменник, встроенным модулем Python. Помогает, когда нужно быстро передать файлы в сети или проверить статику фронта.
Нужен список файлов в браузере с автоматической навигацией? Он уже там:
cd /path/to/share
python3 -m http.server 8080
Если хотите, чтобы сервер слушал только
localhost (без риска открыть доступ в сеть):python3 -m http.server 8080 --bind 127.0.0.1
Нужно запустить и получить
PID одной строкой?python3 -m http.server 8080 & echo $!
Хотите скачать всю директорию одной командой на другой машине?
wget -r -np -nH --cut-dirs=1 http://HOST:8080/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥12❤7
Например,
BIOS/UEFI запускает проверку железа (POST) и ищет устройства, GRUB загружает ядро, а systemd поднимает сервисы и готовит систему к логину.На картинке — 8 этапов boot-процесса, которые стоит держать под рукой, чтобы быстро понимать, где искать проблему при отладке или настройке сервера.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤10🔥8
Генерация SSH-ключей в Linux!
SSH-ключи применяются для аутентификации на серверах, в Git, CI/CD и автоматизации.
Создание Ed25519 (предпочтительный алгоритм):
Создание RSA 4096 (для совместимости со средами без поддержки Ed25519):
Просмотр файлов и проверка отпечатка публичного ключа:
Отпечаток публичного ключа можно использовать для сверки при добавлении ключа в удалённые системы.
Копирование публичного ключа на сервер (рекомендуемый способ):
Ручное добавление ключа на сервере (если
Важно:
Проверка входа по ключу:
Запуск SSH-агента в текущей сессии и добавление приватного ключа:
Агент, запущенный через
Корректные права доступа:
🔥 Рабочие ключи следует создавать с
🚪 Linux Ready | #практика
SSH-ключи применяются для аутентификации на серверах, в Git, CI/CD и автоматизации.
Создание Ed25519 (предпочтительный алгоритм):
ssh-keygen -t ed25519 -a 64 -C "dev@host" -f ~/.ssh/id_ed25519
Создание RSA 4096 (для совместимости со средами без поддержки Ed25519):
ssh-keygen -t rsa -b 4096 -C "dev@host" -f ~/.ssh/id_rsa
Просмотр файлов и проверка отпечатка публичного ключа:
ls -l ~/.ssh/
ssh-keygen -l -f ~/.ssh/id_ed25519.pub
Отпечаток публичного ключа можно использовать для сверки при добавлении ключа в удалённые системы.
Копирование публичного ключа на сервер (рекомендуемый способ):
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server
Ручное добавление ключа на сервере (если
ssh-copy-id недоступен):install -m 700 -d ~user/.ssh
printf '%s\n' "ВАШ_PUBLIC_KEY" >> ~user/.ssh/authorized_keys
chmod 600 ~user/.ssh/authorized_keys
chown -R user:user ~user/.ssh
Важно:
authorized_keys должен находиться в ~user/.ssh/ на сервере, содержать один ключ на строку, а также иметь корректные права и владельца.Проверка входа по ключу:
ssh -i ~/.ssh/id_ed25519 user@server
Запуск SSH-агента в текущей сессии и добавление приватного ключа:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Агент, запущенный через
eval, действует временно для текущего шелла.Корректные права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
passphrase (приватный ключ хранится на диске в зашифрованном виде) и загружать в SSH-агент или системный keyring, чтобы не вводить passphrase при каждом подключении.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍11🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь найдете примеры команд, работу с файлами и процессами, ввод/вывод, перенаправления и многое другое, что реально используется в повседневной работе. Материал написан простым языком и подходит как для новичков, так и для тех, кто хочет перейти от теории к осознанному владению терминалом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8🤝7
Запись и воспроизведение терминальной сессии!
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
После этого делаем все что нужно.
Завершаем запись обычным выходом:
Теперь можно проиграть сессию с теми же паузами:
🔥 Помогает, когда нужно зафиксировать ручной деплой, приложить воспроизводимую сессию к баг-репорту или восстановить ход действий.
🚪 Linux Ready | #совет
Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.
Linux умеет записывать терминал как сессию, включая тайминги:
script -t 2> timing.log session.log
После этого делаем все что нужно.
Завершаем запись обычным выходом:
exit
Теперь можно проиграть сессию с теми же паузами:
scriptreplay timing.log session.log
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🤝8❤7
В этой статье:
• Изучите отличия между Linux для PC и Linux для встраиваемых систем;
• Настроите окружение и соберёте собственное минимальное ядро Linux без Buildroot и Yocto;
• Научитесь кросс-компилировать ядро и собирать образ SD-карты для Raspberry Pi 3 и 4;
• Поймёте, как создаётся полноценная система;🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥9❤7
Как быстро передавать файлы между серверами через tar-поток по SSH!
Перенос каталогов без создания архива на диске. Поток идёт напрямую, распаковка выполняется сразу на целевой стороне.
Push каталога на удалённый сервер:
Метод потоковый — файлы не копятся в RAM целиком, запись сразу в указанную директорию.
Сжатие в момент передачи:
Сжатие экономит трафик и может ускорить перенос, но на слабом или загруженном CPU иногда замедляет.
Мониторинг прогресса (не меняет поток):
Удобно для забора бэкапов, артефактов сборки и выгрузки данных со служебных серверов.
Флаги для миграций, где важны права, владельцы,
Владельцы и расширенные атрибуты применятся только при достаточных правах у пользователя.
🔥 Нет промежуточных архивов на диске; Для инкрементальных копий лучше
🚪 Linux Ready | #практика
Перенос каталогов без создания архива на диске. Поток идёт напрямую, распаковка выполняется сразу на целевой стороне.
Push каталога на удалённый сервер:
tar -cf - ./my-folder | ssh user@server "tar -C /home/user -xf -"
Метод потоковый — файлы не копятся в RAM целиком, запись сразу в указанную директорию.
Сжатие в момент передачи:
tar -czf - ./my-folder | ssh user@server "tar -C /home/user -xzf -"
Сжатие экономит трафик и может ускорить перенос, но на слабом или загруженном CPU иногда замедляет.
Мониторинг прогресса (не меняет поток):
tar -cf - ./big-data | pv | ssh user@server "tar -C /data -xf -"
pv просто показывает скорость, объём и ETA. Без него всё работает так же, но без визуального прогресса.Pull каталога к себе:ssh user@server "tar -C /data -cf - ./remote-folder" | tar -C ./target -xf -
Удобно для забора бэкапов, артефактов сборки и выгрузки данных со служебных серверов.
Флаги для миграций, где важны права, владельцы,
ACL и xattrs (обычно под root):-p --same-owner --numeric-owner --acls --xattrs
Владельцы и расширенные атрибуты применятся только при достаточных правах у пользователя.
rsync; Для изоляции раздела можно добавить --one-file-systemPlease open Telegram to view this post
VIEW IN TELEGRAM
❤12👍9🤝6🔥3
Например,
ssh -D 1080 user@server поднимает локальный SOCKS-прокси и позволяет пускать трафик приложений через SSH-сервер.На картинке — наглядно показано, как работает SSH Dynamic Port Forwarding: локальный порт, SSH-туннель и проброс трафика к конечным адресам.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝12👍9❤8🔥5
Нужно быстро понять, есть ли в директории файлы, содержащие определённый текст?
Для этого подходит рекурсивный
Опции означают:
Если важны только сами файлы, а не строки:
Чтобы не ловить мусор из бинарных файлов:
🔥 Для быстрых проверок
Но если поиск становится сложнее (фильтрация по имени, размеру, дате, типу), комбинируйте
🚪 Linux Ready | #совет
Для этого подходит рекурсивный
grep:grep -Pri "Search_Term" /path/to/dir
Опции означают:
-P — поддержка PCRE (удобно для сложных шаблонов);-r — рекурсивный обход директорий;-i — поиск без учёта регистра.Если важны только сами файлы, а не строки:
grep -Pril "Search_Term" /path/to/dir
-l выводит только имена файлов с совпадениями, идеально для быстрой проверки.Чтобы не ловить мусор из бинарных файлов:
grep -Pri --binary-files=without-match "Search_Term" /path/to/dir
grep -r — самый прямой путь.Но если поиск становится сложнее (фильтрация по имени, размеру, дате, типу), комбинируйте
find и grep: это даёт полный контроль над поиском и масштабируется лучше.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤9🔥7
Работа с архивами tar в Linux!
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
Основные ключи:
Просмотр содержимого без извлечения:
Проверка целостности (проверяется поток сжатия, не структура tar):
Извлечение архива:
Инкрементальный архив (GNU tar):
Потоковая передача по SSH (без промежуточного файла):
🔥
🚪 Linux Ready | #практика
tar — инструмент для упаковки и распаковки данных. Часто используется для бэкапов, доставки артефактов, упаковки проектов и обмена данными между серверами.
Создание архива с gzip-сжатием:
tar -czvf archive.tar.gz /path/to/data
Создание архива с zstd-сжатием (нужен GNU tar с поддержкой
--zstd и установленный zstd):tar --zstd -cvf archive.tar.zst /path/to/data
Основные ключи:
c — create
x — extract
t — list
z — gzip
v — verbose
f — файл/поток
-C — директория
--zstd — zstd
Просмотр содержимого без извлечения:
tar -tzvf archive.tar.gz
tar --zstd -tvf archive.tar.zst
Проверка целостности (проверяется поток сжатия, не структура tar):
gzip -t archive.tar.gz
zstd -t archive.tar.zst
Извлечение архива:
tar -xzvf archive.tar.gz -C /tmp/extract/
tar -xzvf archive.tar.gz path/inside/archive/file.conf
Инкрементальный архив (GNU tar):
tar -czvf backup.tar.gz -g snapshot.file /path/to/data
snapshot.file нужно переиспользовать между запусками.Потоковая передача по SSH (без промежуточного файла):
tar -czf - /data | ssh user@server "tar -xzf - -C /srv/data"
tar по умолчанию сохраняет права доступа, владельца/группу, mtime и симлинки; ACL и xattrs требуют явных опций (--acls, --xattrs).Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍12🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Это огромная база знаний про то, как работает Linux: загрузка системы, systemd, сеть, файловые системы, драйверы, безопасность и оптимизация. Статьи написаны точно и понятно, каждый раздел объясняет почему и как всё устроено. Даже если ты не используешь Arch, сайт объясняет общие принципы Linux, которые применимы в большинстве дистрибутивов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥9🤝8👎1