TGViewer
Channel Public Channel
Linux Ready | DevOps

Linux Ready | DevOps

@linux_ready

Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Cотрудничество: @energy_c
Subscribers
11.2K
Photos
1K
Videos
74
Links
549

Showing posts older than #1055 · Back to latest

Older Posts 20 shown
Post #1054 2.11K
Работа с архивами tar в Linux!

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).

🚪 Linux Ready | #практика
  • ❤ 15
  • 👍 12
  • 🤝 7
Post #1052 1.95K
  • 😁 27
  • ❤ 8
  • 🔥 7
  • 🤝 1
Post #1051 2.17K
Нужно быстро понять, есть ли в директории файлы, содержащие определённый текст?

Для этого подходит рекурсивный 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: это даёт полный контроль над поиском и масштабируется лучше.

🚪 Linux Ready | #совет
  • 👍 13
  • ❤ 9
  • 🔥 7
Post #1049 2.1K
📂 Напоминалка по SSH и сетям!

Например, ssh -D 1080 user@server поднимает локальный SOCKS-прокси и позволяет пускать трафик приложений через SSH-сервер.

На картинке — наглядно показано, как работает SSH Dynamic Port Forwarding: локальный порт, SSH-туннель и проброс трафика к конечным адресам.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
  • 🤝 12
  • 👍 9
  • ❤ 8
  • 🔥 5
Post #1048 2.03K
Как быстро передавать файлы между серверами через tar-поток по SSH!

Перенос каталогов без создания архива на диске. Поток идёт напрямую, распаковка выполняется сразу на целевой стороне.

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-system

🚪 Linux Ready | #практика
  • ❤ 12
  • 👍 9
  • 🤝 6
  • 🔥 3
Post #1046 2.04K
👍 На Хабре недавно вышла крайне полезная статья: «Строим свой остров, как создать минимальный Linux для Raspberry Pi»

В этой статье:
• Изучите отличия между Linux для PC и Linux для встраиваемых систем;
• Настроите окружение и соберёте собственное минимальное ядро Linux без Buildroot и Yocto;
• Научитесь кросс-компилировать ядро и собирать образ SD-карты для Raspberry Pi 3 и 4;
• Поймёте, как создаётся полноценная система;


🔊 Продолжайте читать на Habr!


🚪 Linux Ready | #статья
  • 👍 10
  • 🔥 9
  • ❤ 7
Post #1045 2.1K
Запись и воспроизведение терминальной сессии!

Иногда нужно показать, как ты что-то делал в терминале: отладку, деплой, последовательность команд.

Linux умеет записывать терминал как сессию, включая тайминги:
script -t 2> timing.log session.log


После этого делаем все что нужно.

Завершаем запись обычным выходом:
exit


Теперь можно проиграть сессию с теми же паузами:
scriptreplay timing.log session.log


🔥 Помогает, когда нужно зафиксировать ручной деплой, приложить воспроизводимую сессию к баг-репорту или восстановить ход действий.

🚪 Linux Ready | #совет
  • 👍 24
  • 🤝 8
  • ❤ 7
Post #1043 2.21K
💡 UsingTheTerminal — подробное руководство по Ubuntu!

Здесь найдете примеры команд, работу с файлами и процессами, ввод/вывод, перенаправления и многое другое, что реально используется в повседневной работе. Материал написан простым языком и подходит как для новичков, так и для тех, кто хочет перейти от теории к осознанному владению терминалом.

📌 Оставляю ссылочку: help.ubuntu.com

🚪 Linux Ready | #сайт
  • 👍 15
  • 🔥 8
  • 🤝 7
Post #1042 2.4K
Генерация SSH-ключей в Linux!

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 при каждом подключении.

🚪 Linux Ready | #практика
  • ❤ 16
  • 👍 11
  • 🔥 8
Post #1040 2.7K
📂 Напоминалка по загрузке системы!

Например, BIOS/UEFI запускает проверку железа (POST) и ищет устройства, GRUB загружает ядро, а systemd поднимает сервисы и готовит систему к логину.

На картинке — 8 этапов boot-процесса, которые стоит держать под рукой, чтобы быстро понимать, где искать проблему при отладке или настройке сервера.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
  • 👍 19
  • ❤ 10
  • 🔥 8
Post #1039 2.75K
Как быстро поднять HTTP-шаринг директории одной командой!

В 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/


🔥 Рекурсивно, без выхода за пределы папки и без лишних путей.

🚪 Linux Ready | #совет
  • 👍 16
  • 🔥 12
  • ❤ 7
Post #1037 2.71K
💡 The Art of Command Line — приёмы для работы в терминале!

Этот репозиторий включает лучшие практики и команды для Linux/macOS терминала. Здесь собраны приемы, комбинации CLI-утилит, практики, которые помогают работать быстрее, искать ошибки, обрабатывать данные и автоматизировать рутинные задачи. Отличный ресурс, чтобы повысить эффективность работы.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
  • 👍 14
  • ❤ 9
  • 🔥 7
Post #1036 2.62K
Проверим, что именно подставит shell в *.log!

Включаем режим, чтобы при отсутствии совпадений маска не оставалась строкой *.log:
shopt -s nullglob


Печатаем точный список аргументов, которые реально подставятся (включая пробелы и спецсимволы):
printf '%q\n' -- *.log


%q выводит имя так, как его безопасно повторить в shell.

Возвращаем настройку обратно, чтобы не менять поведение интерактивной сессии:
shopt -u nullglob


🔥 Так проверяем ровно то, что передастся в команду, без ls (который форматирует вывод) и без пайпов, которые ломаются на пробелах/переводах строк.

🚪 Linux Ready | #совет
  • ❤ 13
  • 🔥 8
  • 👍 7
  • 🤝 2
  • 👎 1
Post #1034 2.81K
📂 Шпаргалка по SSH-туннелям через bastion-хост!

Например, ssh -L открывает локальный порт и направляет трафик через SSH на удалённый сервис, а подключение через bastion даёт безопасный доступ к сервисам в приватной сети без public IP.

На картинке — варианты port forwarding, плюс схема, как трафик идёт от SSH-клиента к внутреннему веб-серверу.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
  • ❤ 14
  • 🔥 12
  • 👍 9
Post #1033 3K
Как узнать, какие shared-библиотеки фактически использует процесс?

Хочешь понять, какие .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


🔥 maps отражает что уже загружено в память в момент проверки. Если либы нет — она ещё не загружена или может подгрузиться позже через dlopen().

🚪 Linux Ready | #совет
  • ❤ 16
  • 🔥 11
  • 👍 10
Post #1031 2.68K
  • 👍 18
  • 🔥 13
  • 🤝 8
  • ❤ 3
Post #1030 3.55K
Открываем ISO-образы в Linux без распаковки!

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.

🚪 Linux Ready | #практика
  • 👍 19
  • ❤ 15
  • 🤝 7
Post #1029 3.15K
🎄 Линуксоиды. Всех с наступающим новым 2026 годом!

Этому каналу всего полгода, спасибо каждому за поддержку. Цель на новый год: набрать более 25 тысяч подписчиков ✍️. И желаю каждому выполнить все свои цели.
  • ❤ 45
  • 👍 22
  • 🔥 14
  • 🤝 2
Post #1028 3.34K
📂 Напоминалка по базовым сетевым сервисам и портам!

Например, DNS переводит домены в IP-адреса, HTTPS отвечает за безопасное соединение с сайтами и API, а SSH позволяет безопасно подключаться к серверам.

На картинке — сетевые сервисы, их протоколы и стандартные порты, которые постоянно встречаются в backend, DevOps и инфраструктурной работе.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
  • 👍 17
  • 🔥 10
  • 🤝 6
  • ❤ 5
  • 👎 2
Post #1027 3.34K
Как быстро спрятать содержимое каталога без удаления файлов!

Иногда нужно быстро убрать содержимое каталога из системы, проверить поведение приложения, спрятать данные, не трогая их физически.

В 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 конфигураций и временных экспериментов в проде с минимальным риском для данных на диске.

🚪 Linux Ready | #совет
  • ❤ 13
  • 👍 12
  • 🔥 9
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →