Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
409 - Telegram Web
Telegram Web
Портфорвардинг по ssh

Многие используют SSH исключительно для подключения к серверу, но не все знают о портфорвардинге — функции, которая позволяет значительно расширить способы взаимодействия с удалённой машиной. Ниже — несколько полезных сценариев:

Пример 1: Доступ к внутренней БД через туннель

Если на сервере работает PostgreSQL, настроенный на прослушивание только localhost, то подключиться к нему снаружи напрямую не получится. В этом случае выручит локальный туннель:


ssh -L 5432:localhost:5432 user@remote_host


Теперь на твоей локальной машине порт 5432 будет связан с портом 5432 на удалённой, и ты сможешь подключаться к базе данных, как будто она работает у тебя локально.

Пример 2: Реверсивный SSH — проброс внутрь NAT’а

Если у тебя домашний сервер, который находится за NAT и не имеет внешнего IP, можно настроить обратный (reverse) туннель через внешний VPS:


ssh -R 2222:localhost:22 user@your-vps.com


После этого с VPS-сервера ты сможешь подключиться обратно к домашнему серверу:


ssh -p 2222 user@localhost


Пример 3: Dynamic SOCKS proxy

Можно превратить SSH-сессию в полноценный SOCKS5-прокси-сервер, через который будут проходить запросы браузера, curl или других инструментов:


ssh -D 1080 user@remote_host


Указав в настройках прокси localhost:1080, ты получишь простой VPN без дополнительного ПО.

LinuxCamp | #utils
🔥41👍16❤‍🔥41
Признавайтесь, кто таким промышляет?))

LinuxCamp | #memes
😁757👍7💊4
tmux: держим терминал «живым», даже если связь пропала

Иногда запускаешь на сервере сборку или бэкап, а Wi-Fi взял и оборвался. Без tmux это заканчивается внезапно — процесс тоже падает. С tmux всё спокойнее: сессия остаётся работать на сервере сама по себе.

Установка:


sudo apt install tmux


Запуск и «вечная» сессия:


tmux new -s work


Работай как обычно, можно запускать тяжелые команды, которые могут очень долго выполняться. Чтобы «сложить» терминал и вернуться к нему позже нажми "Ctrl-b" затем "d". Сессия остаётся жить на сервере в фоне. Можно смело закрыть вкладку SSH.

Повторное подключение:

Подключись снова хоть через неделю:


tmux attach -t work


Попадаешь в ту же сессию и видишь, чем закончилась сборка.

Совместная работа:

Оба пользователя SSH-атся на сервер, один запускает:


tmux new -s pair


Второй подключается тем же:


tmux attach -t pair


Теперь видно один и тот же терминал.

Вывод:

tmux - страховой полис от разрывов SSH и удобный рабочий стол внутри терминала: долгие сборки не падают, окна и сплиты сохраняются, а сессию можно делить с коллегами.

LinuxCamp | #utils
1👍48🔥1513🙏1
fzf - быстрый «поиск-как-пишешь» прямо в терминале

fzf — небольшая утилита, которая показывает список файлов, папок, команд и интерактивно фильтрует его, пока ты печатаешь.

Установка:


apt install fzf


После установки — перезапусти терминал, чтобы подключились биндинги.

Быстрый поиск файлов


# ищем любой файл/папку рекурсивно от текущей точки
fzf


Начинаешь печатать — выдаётся автообновляемый список. Нажимаешь Enter → выбранный путь вставляется в командную строку (например, чтобы открыть vim $(fzf)).

История команд без прокрутки:

fzf перехватывает стандартный Ctrl-R и показывает историю, которую можно фильтровать в реальном времени. Нашёл строку → Enter → команда подставилась, остаётся запустить.

Минималистичная кастомизация:


export FZF_DEFAULT_OPTS="--height 40% --border --preview 'batcat --style=numbers --color=always {} | head -100'"


Что даёт:

--height 40% — окно fzf занимает 40% экрана
--border — рамка вокруг списка
--preview — предпросмотр файла справа, с подсветкой синтаксиса через bat

fzf — удобная штука, которая экономит время. Помогает быстро найти файл или команду прямо в терминале. Определенно стоит попробовать, возможно не захочется бросать :)

LinuxCamp | #utils
👍34🔥13👌63🤔1
bat — «цветной cat» с номерами строк и подсветкой кода

Хочется быстро посмотреть файл, но чтобы были цвета, номера строк и даже diff-режим? bat делает ровно это, оставаясь таким же простым, как cat. Установка:


sudo apt install bat


В Debian/Ubuntu бинарник устанавливается как batcat. Чтобы использовать просто bat, можно добавить в "~/.bashrc" или "~/.zshrc":


alias bat="batcat"


Затем:


source ~/.bashrc


Обычный просмотр с цветами:


bat nginx.conf


Синтаксис подсвечен, строки пронумерованы, длинные файлы листаются как less.

Сравнить два файла:


bat --diff old.cfg new.cfg


Видишь изменения как в git diff, только без репозитория. Красивый вывод в Git:


git config --global core.pager "bat --paging=always --style=numbers"


Теперь git show и git diff автоматически открываются через bat с подсветкой. Если подсветка не нужна, добавь -p — plain.

Тонкая настройка (по желанию):

Создай конфиг и подправь тему/стиль:


bat --generate-config-file # путь покажет в выводе


Список доступных тем:


bat --list-themes | less


Вывод:

bat устанавливается за минуту, заменяет cat, добавляет цвета, номера строк и удобный просмотр diff. Просто, красиво и удобно.

LinuxCamp | #utils
👍41🔥179❤‍🔥2
tldr — короткие примеры вместо километров man-страниц

man - хорошо, но порой там много экранов опций. tldr показывает самые частые примеры одной командой. Открыл - увидел, как пользоваться. Особенно удобно тем, кто только знакомится с терминалом.

Ставим за минуту:


sudo apt install tldr


После установки один раз обнови кэш страниц:


tldr -u


Примеры использования:

Хочешь быстро вспомнить синтаксис tar?


tldr tar


Пример вывода команды - короткие, готовые к использованию шпоры с пояснениями. Создать архив, распаковать, посмотреть содержимое, использовать с gzip - всё по делу, без лишнего. Все работает офлайн - страницы лежат в кэше:


- [c]reate an archive and write it to a [f]ile:
tar cf path/to/target.tar path/to/file1 path/to/file2

- E[x]tract a (compressed) archive [f]ile into the current directory:
tar xvf path/to/source.tar.gz

- Lis[t] the contents of a tar [f]ile:
tar tvf path/to/source.tar


tldr - это именно шпаргалка: поставил, ввёл "tldr <команда>" и сразу видишь рабочие примеры без лишних километров текста. Утилита покрывает самые популярные команды, но для редких или новых CLI, каких-то редких кейсов естественно лучше все-таки использовать man или --help.

LinuxCamp | #utils #microhelp
🔥37👍2014🥴1
rg (ripgrep) - самый быстрый поиск в файлах

grep работает, но медленно и выводит всё подряд. rg ищет во много раз быстрее, понимает .gitignore, красиво подсвечивает совпадения и по-умолчанию пропускает бинарники.

Установка по классике:


sudo apt install ripgrep


Молниеносный поиск слова во всём проекте:


rg TODO


Ищет во всех подпапках, игнорируя каталоги из .gitignore. Совпадения подсвечены, путь + номер строки показаны.

Вывод только имени файла по регулярке:


rg -l '^import .*react' src


Флаг -l — показать только файлы, где найдено. Полезно, если нужно перебрать список в скрипте.

Поиск и сразу количество совпадений:


rg -c "SELECT .* FROM" sql/


-c выводит «файл: число», когда важно быстро понять, где больше всего вхождений. Если надо искать без учёта регистра — добавь "-i"; нужно точное слово — "-w".

Можете сравнить скорости поиска:


time grep -R "somePattern" .
time rg "somePattern"


Попробуйте поискать часто используемый паттерн и если до этого не пользовались rg, то очень приятно удивитесь) Чтобы искать без учета .gitignore:


rg --no-ignore secret


Вывод:

rg — это «grep на турбинах»: ищет быстрее, выводит понятнее, уважает .gitignore. Поставь и попробуй rg error в своём большом репозитории — разница чувствуется сразу.

LinuxCamp | #utils
👍34🔥189
Forwarded from ITCamp
Пацаны, биг дроп на канале! 🔥

Какой язык программирования выбрать новичку? JavaScript, Python, C/C++, Java, Go, Rust, C#, а может быть вообще ассемблер?)

Когда перед вкатунами возникает такое разнообразие опций, глаза разбегаются и непонятно, с чего начать!

Выбор первого языка - очень важное событие на старте карьеры. Ошибёшься - потеряешь время, попадёшь не туда, выгоришь.

Поинты, которые обсудили:

— Чем опасен неверный выбор языка и как "не прогадать"?

— Как найти свою нишу и в каких направлениях на старте может быть тяжелее обычного?

— Какие языки правят в каждой сфере: веб, мобилки, десктоп, геймдев, ML?

— Где активно используются C/C++ и стоит ли начинать с них?

— Что нужно учитывать при выборе языка и на какие моменты обратить особое внимание?

Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👍7🤔3
Собери себе эстетичный IDE в терминале

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

Всё это можно сделать через утилиту rgo, не переключаясь в тяжёлую графическую IDE. Ниже показано, как настроить такой «мини-IDE» за несколько минут. Будем использовать: ripgrep + fzf + bat + любой редактор.

Короткая версия команды:


rgo "<паттерн>" [vim|nano|bat]


Ты пишешь rgo, затем в задаёшь шаблон поиска, а далее — редактор, в котором хочешь открыть результат. Если второй аргумент опустить, по умолчанию откроется vim.

Редактор можно заменить на nano, bat или почти любой другой: главное, чтобы он понимал, как открыть файл и перейти к нужной строке.

Что происходит внутри:

ripgrep (rg) мгновенно пробегает по всем файлам вашего проекта и выводит совпадения в формате "путь:строка:текст", fzf превращает вывод в интерактивный список, где можно перемещаться стрелками.

Справа показывается фрагмент кода, нужную строку подсвечивает bat. Когда нажимаешь Enter, выбранная строка распаршивается: скрипт узнаёт путь к файлу и номер строки. После этого файл открывается именно там, где нужно, в соответствии с тем редактором, который ты указал.

Полный скрипт, который кладётся в конфиг шелла:


rgo () {
local editor=${2:-vim}

# ищем совпадения, показываем их в fzf с превью
local sel=$(
rg --line-number --no-heading --color=never "$1" \
| fzf \
--height 50% --border \
--delimiter ':' \
--preview 'bat --style=numbers --color=always --highlight-line {2} {1}' \
--preview-window 'right:60%' \
) || return

# вытаскиваем путь и номер строки
local file=${sel%%:*}
local rest=${sel#*:}
local line=${rest%%:*}

case "$editor" in
vim) vim +"$line" "$file" ;;
nano) nano +"$line" "$file" ;;
bat) bat --style=numbers --highlight-line "$line" "$file" ;;
*) "$editor" "$file" ;;
esac
}
export -f rgo


После того как вставишь этот блок в "~/.bashrc" или "~/.zshrc", перезапусти оболочку "exec $SHELL". Теперь rgo готова к работе.

Вывод:

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

Попробуй, поэкспериментируй с параметрами, и, если найдёшь новые трюки, обязательно расскажи о них!

LinuxCamp | #utils #bymaga
🔥23👍149
This media is not supported in your browser
VIEW IN TELEGRAM
Этому вашему виндовсу "что в лоб что по лбу". Линуха никого не щадит)

LinuxCamp | #memes
😁42🔥7👍61
autossh — чтобы SSH-туннели не отваливались

Обычный "ssh -L" рвётся: сеть пропала, ноут ушёл в сон — туннель умер. Тулза autossh следит за соединением и сам перезапускает его. Незаменим для баз, Grafana, внутренних API — всего, что должно «всегда работать».

Установка:


sudo apt install autossh


Быстрый старт:

Достаточно заменить привычную команду ssh -L на autossh, добавив пару опций. Например, вместо:


ssh -L 5432:localhost:5432 user@111.111.111.111


Пишем:


autossh -M 0 -fN -L 5432:localhost:5432 user@111.111.111.111


Параметры тут важны. Флаг "-fN" означает запуск в фоне без запуска удалённой команды. Флаг "-M 0" отключает echo-порт, чтобы не мешал, — вместо него autossh будет использовать настройки keep-alive из SSH-конфига.

Надёжность через keep-alive:

Чтобы autossh действительно знал, когда туннель умер, нужно включить keep-alive. Добавьте в "~/.ssh/config":


Host *
ServerAliveInterval 30
ServerAliveCountMax 3


Теперь SSH будет каждые 30 секунд отправлять пинг на сервер. Если три пинга подряд не получат ответа, соединение считается мёртвым - и autossh запустит его заново.

Примеры из практики:

Обратный туннель (если сервер стоит за NAT или роутером):


autossh -M 0 -fN -R 2222:localhost:22 user@111.111.111.111


На VPS теперь можно выполнить ssh -p 2222 localhost — и попасть внутрь домашнего сервера, как будто он сам подключился. SOCKS-прокси с автопереподключением:


autossh -M 0 -fN -D 1080 user@111.111.111.111


Выставляете localhost:1080 в браузере - и получаете надёжный прокси, который не развалится при первой же потере Wi-Fi.

Автозапуск с systemd:

Если туннель нужен всегда (например, при старте сервера) — стоит обернуть autossh в systemd-сервис:


# /etc/systemd/system/db-tunnel.service

[Unit]
Description=Persistent SSH tunnel to prod DB
After=network-online.target
Wants=network-online.target

[Service]
User=deploy
ExecStart=/usr/bin/autossh -M 0 -N -L 5432:localhost:5432 deploy@db-host
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target


Активировать можно одной командой:


sudo systemctl enable --now db-tunnel.service


Теперь туннель поднимется при загрузке сервера и будет перезапущен, если вдруг упадёт.

Вывод:

autossh незаметный, но жизненно важный инструмент. Просто заменяешь ssh на autossh, и туннель больше не рвётся. Настроил один раз - и забыл, что раньше ты делал это вручную.

LinuxCamp | #utils
28👍16🔥152❤‍🔥1
Релиз отечественного дистрибутива РЕД ОС 8 и 7

Все же в курсе про примерную ОС РЕД?) Так вот, разрабы «РЕД СОФТ» радуют нас новыми апдейтами.

Произошел выпуск РЕД ОС 8.0.2 и 7.3.6 с ядрами Linux 6.12.21 и 6.1.128, обновленным ПО (Zabbix, Docker, PostgreSQL), улучшенным дизайном KDE, MATE, GNOME 46.

Что нового в РЕД ОС 8?

— Обновленные ядра: исправлены уязвимости, улучшена производительность, наложены патчи безопасности, закрывающие более 1500 CVE.

— Обновленный дизайн графических окружений: в РЕД 8 обновлены темы оформления для KDE и MATE, изменен стиль экранов входа и блокировки. Окружение GNOME обновлено до версии 46.

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

LinuxCamp | #news
👍28💊9🔥6❤‍🔥22🫡2🗿2
Закрываем Docker-порты правильно

Даже если ты настроил ufw и открыл порты только на 22, 433 и 80, у тебя все равно сервисы docker могут торчать наружу. Это происходит потому что docker напрямую управляет iptables/nftables, вставляя свои правила до UFW, поэтому опубликованные порты могут быть доступны, даже если UFW их не показывает.

Почему это небезопасно:

Если ты запускаешь контейнер так:


docker run -p 8080:80 …


Или в docker-compose у тебя:

  ports:
- "8080:80"


То Docker сам открывает порт всему интернету (0.0.0.0), даже если в ufw status его нет. Это значит, что любой человек из сети может достучаться до твоего контейнера и ufw это не остановит - Docker обходит его фильтры.

Как правильно защитить контейнер:

Лучше всего конечно вообще не открывать порт наружу, если в этом нет нужды. Безопасный вариант (локальный доступ):


docker run -p 127.0.0.1:8080:80 …


либо в docker-compose.yml:

  ports:
- "127.0.0.1:8080:80"


Так сервис будет доступен только внутри сервера. Подходит для проксирования через nginx, который проксирует наружу, скрытых API и внутренних утилит, ssh-туннелей или VPN.

Вариант с открытым портом контейнера:

Если все-таки нужно по какой-то причине поднять контейнер на 0.0.0.0, то лучше закрыть эти порты с помощью правил. Docker поддерживает специальную цепочку DOCKER-USER, где ты можешь сам прописать фильтры:


# Разрешаем уже установленные соединения
sudo iptables -I DOCKER-USER -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Разрешаем только нужный порт (например, 8080)
sudo iptables -I DOCKER-USER -p tcp --dport 8080 -j ACCEPT

# Всё остальное режем
sudo iptables -A DOCKER-USER -j DROP


Важно: правила читаются сверху вниз, поэтому разрешающие вставляем перед правилом DROP.

Проверка:


ss -lntp | grep 8080 # Слушает ли порт


Если вывод пуст - порт больше не слушает «снаружи».

Вывод:

Docker по умолчанию открывает всё наружу, даже если UFW говорит, что порты закрыты. Если не нужен внешний доступ, не публикуй порты или публикуй на 127.0.0.1. Если доступ нужен - используй DOCKER-USER, чтобы жёстко ограничить доступ к нужным портам.

LinuxCamp | #devops #docker #bymaga
👍35🔥128👌61
This media is not supported in your browser
VIEW IN TELEGRAM
Особенно кайфово, когда windows раздел случайно затирается 🗣

LinuxCamp | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁64👍64💔3🔥1
Как найти процесс, который грузит сеть?

В случае когда соединение начинает тормозить, а ты не понимаешь, кто именно грузит сеть. Может, какой-то скрипт что-то качает? Или случайно оставил curl в фоне? В таких случаях хочется просто одной командой увидеть, какой процесс активнее всех гоняет трафик.

Для этого есть простая, но очень удобная утилита - nethogs. Она показывает, какой процесс сколько трафика использует в реальном времени. Интерфейс у неё похож на top, только вместо нагрузки на CPU - сетевой трафик.

Установка:


sudo apt install nethogs


Использование:

Запустить её можно вообще без параметров:


sudo nethogs


В этом случае она попытается определить интерфейс автоматически. Часто этого достаточно. Если ты точно знаешь, через какой интерфейс идёт трафик (чаще всего это eth0, но может быть ens18, enp0s3, wlan0, зависит от системы и типа подключения), то можешь указать его явно:


sudo nethogs eth0


После запуска ты увидишь список процессов, которые что-то скачивают или отдают. Указывается имя процесса, путь до исполняемого файла, пользователь, и скорость входящего/исходящего трафика.

Всё обновляется в реальном времени, можно наблюдать за сетевой активностью прямо на лету. Если не уверен, какой интерфейс использовать, глянь список всех с помощью команды:


ip a


Команда покажет список всех интерфейсов. Обычно нужный - это тот, где есть IP-адрес из подсети (например, 192.168.*.* или 10.*.*.*), и видно state UP.

Вывод:

Так можно удобно на сервере быстро понять, кто шумит. Или локально, если подозреваешь, что какая-то программа активно лезет в интернет. Утилита nethogs не показывает домены, IP-адреса или порты, а только процессы и их скорость. Но для локальной отладки этого обычно хватает с головой.

LinuxCamp | #utils
👍52🔥1813
Автоматическая защита SSH от перебора

Fail2ban - утилита для автоматической блокировки ip-адресов, с которых идёт много неудачных попыток подключения по ssh. Она нужна, когда сервер доступен напрямую по порту 22 и авторизация по SSH открыта во внешний интернет без vpn.

Установка:


sudo apt install fail2ban


По умолчанию fail2ban готов к работе сразу после установки. Чтобы убедиться, что он запущен и будет стартовать автоматически при перезагрузке системы, можно выполнить:


sudo systemctl enable --now fail2ban


Базовая настройка:

Основные параметры fail2ban находятся в конфигурационном файле. Чтобы его изменить, сначала создайте копию стандартного файла, так безопаснее и проще для управления:


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local


Затем отредактируйте файл:


sudo nano /etc/fail2ban/jail.local


В самом верху задаются базовые настройки: сколько времени держать IP заблокированным (bantime), за какой промежуток времени подсчитывать неудачные попытки (findtime), и после скольких попыток банить (maxretry). Например:


[DEFAULT]
ignoreip = 127.0.0.1
bantime = 3600
findtime = 600
maxretry = 5


Здесь fail2ban будет банить IP на 1 час (3600 секунд), если за последние 10 минут (600 секунд) с него было 5 неудачных попыток входа. Отдельно включается защита SSH:


[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s


После внесения изменений нужно перезапустить fail2ban, чтобы они вступили в силу:


sudo systemctl restart fail2ban


Для проверки текущего состояния защиты SSH используется:


sudo fail2ban-client status sshd


Эта команда покажет, сколько IP-адресов сейчас заблокировано и сколько всего попыток было зафиксировано.

Вывод:

Использовать fail2ban рекомендуется вместе с другими подходами к защите сервера: строгой авторизацией только по ключам, изменением стандартного порта SSH, ограничением доступа с помощью firewall и регулярными обновлениями системы.

LinuxCamp | #utils
👍37🔥17❤‍🔥54
KDE Plasma 6.4.4

Всем любителям окружения KDE Plasma посвящается) Вышел неплохой релиз. Что исправили и доработали в версии 6.4.4?

KWin (оконный менеджер)

— Теперь, для плагина лупы, правильно устанавливает начальный уровень масштабирования, так что больше не возникнет неловких проблем при первом запуске.

— Реже возникают "зависания" при работе с несколькими мониторами.

— Внесено множество исправлений, включая улучшенное поведение перетаскивания на прокручиваемых рабочих столах.

— Более стабильное редактирование виджетов панели для языков с письмом справа налево.

Discover (центр приложений)

— Discover стал надежнее в управлении удаленными источниками Flatpak.

— Теперь он не "задумывается" по 5 минут при проверке обновлений.

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

А так же исправили:

— Улучшена совместимость с новыми видеодрайверами (особенно для NVIDIA).

— Сетевой плагин System Monitor больше не опережает события, объявляя данные для процессов, которые еще не полностью загружены.

➡️ Подробнее про обновление читать ТУТ

🔥 Давайте, по приколу: все, кто использует KDE, ставьте пламя

LinuxCamp | #news
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥76👍139
Торвальдс снова агрессирует

Вы уже 100% видели эту новость, но давайте и у меня будет.

«Мусор», который «активно делает мир худшим местом для жизни» — так Линус Торвальдс вчера ответил на код инженера Google, присланный в рамках обновления поддержки RISC-V в ядре Linux.

Он добавил, что коду инженера Google «самое место в мусорке». Как вы уже догадались, данный коммит был отклонен.

Короче, желаю вам активно прокачивать софт скиллы, чтобы ваши комментарии не репостил кажды первый IT паблик)

LinuxCamp | #news
👍34😁18🔥6🥴54
Минимальная настройка мониторинга контейнеров в терминале

Иногда нужно быстро оценить, что происходит с контейнерами: какие из них под нагрузкой, сколько памяти занято, нет ли узких мест по I/O.

Утилита ctop показывает это в реальном времени и позволяет сразу управлять контейнерами без переключения на другие команды.

Установка:

Свежая версия ctop работает и с cgroup v2, поэтому ставим бинарник напрямую из репозитория проекта.


sudo install -m 0755 -d /usr/local/bin

curl -L https://github.com/bcicen/ctop/releases/download/v0.7.7/ctop-0.7.7-linux-amd64 -o /tmp/ctop

sudo install -m 0755 /tmp/ctop /usr/local/bin/ctop

ctop -v


Использование:

Чтобы просмотреть ресурсы всех контейнеров на локальном хосте, достаточно выполнить одну команду:


ctop


В интерфейсе можно переключаться между контейнерами стрелками, останавливать или перезапускать их, а также открывать логи прямо оттуда. Если нужно подключиться к удалённому Docker, можно указать адрес перед запуском:


DOCKER_HOST=tcp://remote-host:2375 ctop


Для тех, кто не хочет ставить бинарник на хост, есть запуск из контейнера:


docker run --rm -ti \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
quay.io/vektorlab/ctop:latest


Чем отличается от docker stats:

docker stats тоже показывает ресурсы, но только в виде списка с метриками. В ctop всё представлено в виде интерактивной таблицы с сортировкой, поиском, фильтрацией и возможностью управлять контейнерами прямо из интерфейса.

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

Вывод:

С помощью ctop можно в пару команд получить наглядную картину по всем контейнерам, переключаться между хостами и при необходимости управлять ими прямо из терминала. Такой способ полезен как при мониторинге и отладке, так и при повседневной работе с Docker.

LinuxCamp | #utils #devops #docker #bymaga
🔥23👍154❤‍🔥4🥴1
Прикольный сервис по разбору команд

Наткнулся тут в ленте на ExplainShell (интерактивный разборщик команд Linux) и решил мельком глянуть.

Работает он так: вбиваешь команду целиком, и получаешь объяснение, что конкретно делает каждый аргумент или оператор оболочки.

Работает на базе ~30k man-страниц из Ubuntu. Также является открытым решением (ссылка на Github). Мб кому-то будет интересно залезть внутрь и посмотреть реализацию. Под капотом у него: Python, NLTK, Flask и d3.js.

Конечно, в эпоху GPT юзкейс этого сервиса минимален... Но если нужно, допустим, убедиться в корректности оператора и лень открывать man в ручную, можно использовать.

Сори за перезалив 🗣


LinuxCamp | #services
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍159🥴1
2025/10/15 17:04:02
Back to Top
HTML Embed Code: