Бывает, сервер или рабочая машина начинает «думать» дольше обычного: команды висят, интерфейс лагает, SSH отвечает с задержкой. Не паникуем — 90% случаев решаются системной диагностикой.
Полный чек-лист, когда что-то тормозит:
Шаг 1: Общая картина — что жрёт ресурсы прямо сейчас
Сразу запускаем
Что смотреть:
• CPU: если все ядра на 100% — ищем процесс вверху списка (сортировка по %CPU — нажми F6 → %CPU).
• RAM/Swap: если Swap активно используется (жёлтая полоска) — нехватка памяти, процесс убивает OOM-killer.
• Load Average (вверху): три числа — 1/5/15 мин. Если на 4-ядерной машине >8-12 — перегрузка.
Альтернатива без htop:
Шаг 2: Память — free и vmstat
Ключевые колонки в vmstat:
• r — процессы в очереди на CPU (если > числа ядер — CPU bottleneck)
• b — процессы в uninterruptible sleep (обычно I/O wait)
• si/so — swap in/out (если не нули — памяти не хватает)
• wa — % CPU в I/O wait (высокий — диски тормозят)
Шаг 3: Диски — iostat и iotop
В iostat смотрим:
• %util близко к 100% — диск загружен полностью
• await > 20-30 ms — медленный отклик (SSD должно быть <1 ms)
• svctm устарело, но если высокое — проблемы
Если NVMe/SSD, а util 100% — часто виноваты большие логи или бэкапы.
Шаг 4: CPU детально — mpstat и pidstat
Поможет понять: один поток жрёт одно ядро или нагрузка равномерная.
Шаг 5: Исторические данные — sar (sysstat)
Если проблема не постоянная:
Sysstat по умолчанию собирает данные каждые 10 мин — золотой источник для ночных тормозов.
Шаг 6: Конкретный процесс — strace и perf
Если виновник известен (например, mysqld или java):
Шаг 7: Ядро и аппаратные проблемы
Частые виновники: ошибки диска, перегрев, сетевые драйверы.
Шаг 8: Сеть — если тормозит только удалённо
Полный чек-лист, когда что-то тормозит:
Шаг 1: Общая картина — что жрёт ресурсы прямо сейчас
Сразу запускаем
htop (если нет — sudo apt install htop или dnf install htop).Что смотреть:
• CPU: если все ядра на 100% — ищем процесс вверху списка (сортировка по %CPU — нажми F6 → %CPU).
• RAM/Swap: если Swap активно используется (жёлтая полоска) — нехватка памяти, процесс убивает OOM-killer.
• Load Average (вверху): три числа — 1/5/15 мин. Если на 4-ядерной машине >8-12 — перегрузка.
Альтернатива без htop:
top (Shift+P — сортировка по CPU, Shift+M — по MEM).Шаг 2: Память — free и vmstat
free -h # сколько реально свободно
vmstat -w 1 10 # каждую секунду 10 разКлючевые колонки в vmstat:
• r — процессы в очереди на CPU (если > числа ядер — CPU bottleneck)
• b — процессы в uninterruptible sleep (обычно I/O wait)
• si/so — swap in/out (если не нули — памяти не хватает)
• wa — % CPU в I/O wait (высокий — диски тормозят)
Шаг 3: Диски — iostat и iotop
iostat -xz 1 10 # расширенная стат-а каждую сек.
iotop # как htop, но для I/O (нужен root)В iostat смотрим:
• %util близко к 100% — диск загружен полностью
• await > 20-30 ms — медленный отклик (SSD должно быть <1 ms)
• svctm устарело, но если высокое — проблемы
Если NVMe/SSD, а util 100% — часто виноваты большие логи или бэкапы.
Шаг 4: CPU детально — mpstat и pidstat
mpstat -P ALL 1 10 # нагрузка по каждому ядру
pidstat -u 1 10 # CPU по процессам со временемПоможет понять: один поток жрёт одно ядро или нагрузка равномерная.
Шаг 5: Исторические данные — sar (sysstat)
Если проблема не постоянная:
sar -u 10 5 # CPU сейчас
sar -r # память за день
sar -d # диски за день
sar -n DEV # сетьSysstat по умолчанию собирает данные каждые 10 мин — золотой источник для ночных тормозов.
Шаг 6: Конкретный процесс — strace и perf
Если виновник известен (например, mysqld или java):
strace -p PID -c
# системные вызовы и сколько времени на них
perf top -p PID
# что именно в CPU жрёт (нужен kernel-headers)
perf record -p PID -g sleep 10; perf report
# профилированиеШаг 7: Ядро и аппаратные проблемы
dmesg -T --follow
# последние сообщения ядра с читаемыми датами
cat /proc/interrupts
# если один IRQ очень высокий — драйвер/устройствоЧастые виновники: ошибки диска, перегрев, сетевые драйверы.
Шаг 8: Сеть — если тормозит только удалённо
iftop # кто сколько трафика жрёт
nethogs # по процессам
ping -c 4 google.com
mtr google.com # трассировка + пингОчищаем дисковый кэш в Linux
Linux кэширует файлы в свободной RAM — это ускоряет всё. Но иногда нужно сбросить кэш. Полезно. когда нужен честный бенчмарк скорости диска диагностика памяти либо тесты в VM/контейнерах
Не делай это регулярно — кэш заполнится заново, а производительность упадёт.
Главная команда:
Цифры:
• 1 — только данные файлов
• 2 — метаданные
• 3 — всё
Проверка:
buff/cache резко упадёт → больше free.
Альтернатива:
Готовый one-liner для теста диска:
Мини-скрипт:
Не ставь в cron — хуже будет. Linux сам управляет кэшем лучше нас.
Linux кэширует файлы в свободной RAM — это ускоряет всё. Но иногда нужно сбросить кэш. Полезно. когда нужен честный бенчмарк скорости диска диагностика памяти либо тесты в VM/контейнерах
Не делай это регулярно — кэш заполнится заново, а производительность упадёт.
Главная команда:
sudo sync
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'Цифры:
• 1 — только данные файлов
• 2 — метаданные
• 3 — всё
Проверка:
free -h | grep Membuff/cache резко упадёт → больше free.
Альтернатива:
sudo sysctl -w vm.drop_caches=3Готовый one-liner для теста диска:
sudo sync; echo 3 > /proc/sys/vm/drop_caches; dd if=/bigfile of=/dev/null bs=1M status=progressМини-скрипт:
#!/bin/bash
free -h | grep Mem
sudo sync; echo 3 > /proc/sys/vm/drop_caches
free -h | grep Mem
echo "Кэш сброшен"
Не ставь в cron — хуже будет. Linux сам управляет кэшем лучше нас.
GNU Autotools - классический набор инструментов для автоматизации сборки ПО под Unix-подобные системы. Появился в 1990-х и до сих пор используется в тысячах open-source проектов.
Главная цель Autotools — сделать исходный код портативным: один и тот же тарбол должен собираться на разных дистрибутивах, архитектурах, с разными версиями компилятора и библиотек, без ручной правки Makefile под каждую систему.
Основные компоненты Autotools:
Autoconf
Генерирует скрипт
configure — это shell-скрипт, который при запуске проверяет систему:
• есть ли нужные заголовки, библиотеки, функции
• какой компилятор, какие флаги
• где лежат зависимости (например, pkg-config)
На выходе — настроенный Makefile и config.h.
Automake
Из файла
Позволяет писать простые декларативные правила вместо огромных ручных Makefile.
Libtool
Упрощает сборку и использование shared-библиотек на разных платформах (особенно где
M4
Макро-процессор, на котором построены Autoconf и Automake. В
Дополнительно: gettext (для интернационализации), aclocal и т.д.
Как это работает на практике:
Разработчик проекта:
1. Пишет
2. Запускает
3. Коммитит только эти файлы + вспомогательные (NEWS, README, AUTHORS).
Пользователь (или дистрибутив):
Пример простого
Главная цель Autotools — сделать исходный код портативным: один и тот же тарбол должен собираться на разных дистрибутивах, архитектурах, с разными версиями компилятора и библиотек, без ручной правки Makefile под каждую систему.
Основные компоненты Autotools:
Autoconf
Генерирует скрипт
configure из файла configure.ac (или configure.in).configure — это shell-скрипт, который при запуске проверяет систему:
• есть ли нужные заголовки, библиотеки, функции
• какой компилятор, какие флаги
• где лежат зависимости (например, pkg-config)
На выходе — настроенный Makefile и config.h.
Automake
Из файла
Makefile.am генерирует Makefile.in - шаблон Makefile, который потом подставляется в Autoconf.Позволяет писать простые декларативные правила вместо огромных ручных Makefile.
Libtool
Упрощает сборку и использование shared-библиотек на разных платформах (особенно где
.so, .dylib, .dll отличаются).M4
Макро-процессор, на котором построены Autoconf и Automake. В
configure.ac вы пишете макросы M4.Дополнительно: gettext (для интернационализации), aclocal и т.д.
Как это работает на практике:
Разработчик проекта:
1. Пишет
configure.ac и Makefile.am.2. Запускает
autoreconf -i (или старый autotools набор команд: aclocal → autoconf → automake).3. Коммитит только эти файлы + вспомогательные (NEWS, README, AUTHORS).
Пользователь (или дистрибутив):
./configure # проверяет систему, генерирует Makefile
make # сборка
sudo make install # установкаПример простого
configure.ac:mAC_INIT([myprog], [1.0], [bug@example.com])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUTiconv: превращаем «????????» обратно в нормальный русский текст
В старых файлах, при копировании с Windows, в логах или при парсинге данных из разных источников часто появляется классика: вместо «
Проблема кодировки. И лучший инструмент для её решения в Linux — утилита
Установка (если вдруг нет):
Основные опции:
•
•
•
•
Примеры:
1. Конвертация файла на месте
Файл text.txt в CP1251, нужно в UTF-8:
Потом можно перезаписать оригинал:
2. Через stdin/stdout (в пайплайне)
Или с curl:
3. Автоопределение кодировки + конвертация
iconv не угадывает сам, но комбинируем с file или uchardet:
4. Массовое конвертирование всех файлов в директории
____________________
если iconv ругается «
В старых файлах, при копировании с Windows, в логах или при парсинге данных из разных источников часто появляется классика: вместо «
Привет, мир» вы видите «ÐŸÑ€Ð¸Ð²ÐµÑ‚, мир» или полные кракозябры.Проблема кодировки. И лучший инструмент для её решения в Linux — утилита
iconv.iconv — часть GNU libc, конвертирует текст из одной кодировки в другую. Поддерживает сотни encoding’ов: UTF-8, CP1251, KOI8-R, ISO-8859-1, CP866 и т.д.Установка (если вдруг нет):
sudo apt install iconv
# на Debian/Ubuntu уже есть в libc6
# или просто проверьте: iconv --versionОсновные опции:
•
-f — from (исходная кодировка)•
-t — to (целевая кодировка)•
-o — файл вывода•
--list — показать все поддерживаемые кодировки (их > 1000!)Примеры:
1. Конвертация файла на месте
Файл text.txt в CP1251, нужно в UTF-8:
iconv -f CP1251 -t UTF-8 text.txt -o text_utf8.txt
Потом можно перезаписать оригинал:
iconv -f CP1251 -t UTF-8 text.txt > text.txt.tmp && mv text.txt.tmp text.txt
2. Через stdin/stdout (в пайплайне)
cat old_file.txt | iconv -f KOI8-R -t UTF-8
Или с curl:
curl -s http://old-site.ru/page | iconv -f CP1251 -t UTF-8
3. Автоопределение кодировки + конвертация
iconv не угадывает сам, но комбинируем с file или uchardet:
# Сначала узнаём кодировку
file -i old_file.txt
# или
uchardet old_file.txt
# Потом конвертируем
iconv -f $(uchardet old_file.txt) -t UTF-8 old_file.txt -o new_file.txt
4. Массовое конвертирование всех файлов в директории
for file in *.txt; do
iconv -f CP1251 -t UTF-8 "$$ file" -o " $${file%.txt}_utf8.txt"
done
____________________
если iconv ругается «
illegal input sequence» — добавьте //IGNORE или //TRANSLIT:iconv -f CP1251 -t UTF-8//TRANSLIT//IGNORE bad_file.txt
TRANSLIT — заменит неизвестные символы на похожие, IGNORE — просто пропустит.Preload — это фоновая служба, которая анализирует, какие программы вы чаще всего запускаете, и предзагружает их библиотеки (
При следующем запуске система берёт всё из RAM, а не читает с диска.
После установки (
Настройка (по желанию):
Конфиг в
После правки:
Проверяем, что работает:
.so), бинарники и зависимости в кэш страниц памяти.При следующем запуске система берёт всё из RAM, а не читает с диска.
После установки (
sudo apt install preload ) автоматически стартует как systemd-сервис.Настройка (по желанию):
Конфиг в
/etc/preload.conf. Основные параметры:
# Количество процессов для отслеживания (по умолчанию 150–200)
model.cachesize = 200
# Какие директории сканировать (добавьте свои)
map.minimum = /usr/bin:/usr/local/bin:/usr/games:/bin:/sbin:/usr/sbin
# Исключить ненужное (например, редко используемые)
exclude = /usr/bin/rare_app /usr/lib/firefox/firefox-bin
# Частота обновления модели (в секундах)
cycle = 3600После правки:
sudo systemctl restart preloadПроверяем, что работает:
# статус службы sudo systemctl status preload
# лог предзагрузок
cat /var/log/preload.log
# вручную обновить модель
sudo preload-predictЗамена стандартной команды cat
Команда
Основное отличие
Примеры использования:
1. Просмотр файла с подсветкой синтаксиса и номерами строк:
2. Сравнение файла с его версией в Git:
3. Сочетание с другими командами через pipe:
Чтобы найти определенный текст в файле и вывести результат с подсветкой синтаксиса, вы можете использовать grep совместно с bat:
Установка bat зависит от дистрибутива. Пример для Debian:
Команда
bat — это утилита командной строки, предназначенная для замены стандартной команды cat - чтение данных из файла или стандартного ввода. Основное отличие
bat от cat заключается в добавлении подсветки синтаксиса, интеграции с Git, а также в возможности отображения номеров строк и вывода в формате "paging".Примеры использования:
1. Просмотр файла с подсветкой синтаксиса и номерами строк:
bat file.txt2. Сравнение файла с его версией в Git:
bat --diff file.txt3. Сочетание с другими командами через pipe:
Чтобы найти определенный текст в файле и вывести результат с подсветкой синтаксиса, вы можете использовать grep совместно с bat:
grep -n 'search_term' file.txt | batУстановка bat зависит от дистрибутива. Пример для Debian:
sudo apt install bat
В некоторых дистрибутивах команда может быть доступна как batcat из-за конфликта имен.Разница между
CHMOD и CHOWN
Говоря простыми словами, chown определяет, кому принадлежит файл, а chmod определяет, кто что может делать этим файлом.chmod и chown работают вместе: chmod может контролировать, что разрешено владельцу и группе владельцев для данного файла или каталога, в то время как chown быстро меняет, кто в системе получает доступ к файлу.Отрезаем расширение у файла.
Стандартный способ — использовать утилиту basename, который отрезает весь путь слева, а если указать дополнительный параметр, то дополнительно отрежет справа и суффикс.
Например пишем
Получаем:
Но можно обойтись внутренними преобразованиями в bash
Получаем:
Или наоборот, отрезать имя файла и оставить только расширение:
Получаем:
Стандартный способ — использовать утилиту basename, который отрезает весь путь слева, а если указать дополнительный параметр, то дополнительно отрежет справа и суффикс.
Например пишем
file.txt и суффикс .txtbasename file.txt .txtПолучаем:
fileНо можно обойтись внутренними преобразованиями в bash
filename=file.txt; echo ${filename%.*}Получаем:
fileИли наоборот, отрезать имя файла и оставить только расширение:
filename=file.txt; echo ${filename##*.}Получаем:
txtЧтобы каждый раз не мониторить завершение какого-либо долгого процесса, к примеру, бэкапа или сборки пакетов, можно применить звуковой сигнал по его завершении.
Пример псевдокода:
•
•
Пример псевдокода:
some_long_command; echo $'\a'•
; - отделяет команды друг от друга.•
echo $'\a' - подаст звуковой сигнал.Сочетание команд find и grep
Комбинация этих команд позволяет искать файлы с помощью
Найти определенный текстовый шаблон в файлах в каталоге и его подкаталогах:
Найдите файлы, измененные в пределах временного диапазона, а затем выполните поиск внутри них:
Найти файлы с расширением .txt и затем найти в них шаблон:
Комбинация этих команд позволяет искать файлы с помощью
find, а затем искать определенное содержимое в этих файлах с помощью grep.Найти определенный текстовый шаблон в файлах в каталоге и его подкаталогах:
find /path/to/search -type f -exec grep -H "pattern" {} +Найдите файлы, измененные в пределах временного диапазона, а затем выполните поиск внутри них:
find /path/to/search -type f -mtime -7 -exec grep -H "pattern" {} +Найти файлы с расширением .txt и затем найти в них шаблон:
find /path/to/search -type f -name "*.txt" -exec grep -H "pattern" {} +Анализ логов с агрегацией и сортировкой
Условие:
Есть лог веб-сервера access.log в формате:
Пример:
Задача:
Вывести топ-5 IP, которые сделали больше всего запросов с кодом 500.
Решение:
•
• •
• •
•
•
•
•
Условие:
Есть лог веб-сервера access.log в формате:
IP - - [date] "METHOD URL HTTP/1.1" STATUS SIZEПример:
192.168.1.10 - - [01/Feb/2026:10:12:34] "GET /api/users HTTP/1.1" 200 1234Задача:
Вывести топ-5 IP, которые сделали больше всего запросов с кодом 500.
Решение:
awk '$9 == 500 {print $1}' access.log \
| sort \
| uniq -c \
| sort -nr \
| head -5•
awk '$9 == 500 {print $1}'• •
$9 — HTTP-код• •
$1 — IP-адрес•
sort — обязательная подготовка для uniq•
uniq -c — считаем количество повторений•
sort -nr — числовая сортировка по убыванию•
head -5 — топ-5Где вы окажетесь завтра, зависит от того, что вы изучаете сегодня. PostgreSQL — инструмент, который ищут компании, а грамотных специалистов по нему все еще немного.
Почему именно PostgreSQL? Потому что это не просто база данных, а сердце ваших проектов. Если вы администратор БД, разработчик, DevOps или администратор Linux, этот курс — ваш апгрейд.
Мы научим настраивать кластеры, оптимизировать производительность, разбираться с блокировками и решать задачи работы с большими объемами данных. А также живые лекции, практические задания и диплом, который признают лидеры рынка. Учитесь у практиков, которые знают, как решать реальные задачи, и получите навыки, за которые платят топовые компании.
Присоединяйтесь к курсу «PostgreSQL для администраторов баз данных и разработчиков» сейчас и начните свой путь к высокооплачиваемой карьере!
Оставить заявку: https://otus.pw/VeBi/
🎁Бонус: скидка 5% на обучение по промокодуgo_dba . Предложение действительно до 12.02
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Почему именно PostgreSQL? Потому что это не просто база данных, а сердце ваших проектов. Если вы администратор БД, разработчик, DevOps или администратор Linux, этот курс — ваш апгрейд.
Мы научим настраивать кластеры, оптимизировать производительность, разбираться с блокировками и решать задачи работы с большими объемами данных. А также живые лекции, практические задания и диплом, который признают лидеры рынка. Учитесь у практиков, которые знают, как решать реальные задачи, и получите навыки, за которые платят топовые компании.
Присоединяйтесь к курсу «PostgreSQL для администраторов баз данных и разработчиков» сейчас и начните свой путь к высокооплачиваемой карьере!
Оставить заявку: https://otus.pw/VeBi/
🎁Бонус: скидка 5% на обучение по промокоду
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Контроль активности пользователя
Чтобы мониторить действий пользователей в системе, можно использовать два приложения —
Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как
Команды для мониторинга действий процесса:
⁃
⁃
⁃
⁃
⁃
Пакет
Чтобы мониторить действий пользователей в системе, можно использовать два приложения —
psacct или acct.Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как
Apache, MySQL, FTP, SSH и т.д.Команды для мониторинга действий процесса:
⁃
ac — выводит статистику пользовательских входов/выходов (время подключения) в часах.⁃
lastcomm — печатает информацию о ранее выполненных командах пользователя.⁃
accton — используются для включения/выключения процесса учета.⁃
sa — суммирует информацию о ранее выполненных командах.⁃
last и lastb — показывают список последних зарегистрированных пользователей.Пакет
psacct доступен только для дистрибутивов на основе rpm (RHEL, CentOS и Fedora), а acct — для Ubuntu, Debian и Linux Mint.Получить всю информацию о компонентах компьютера можно с помощью команды
Если запустить команду без параметров, то на выходе получим огромный список в несколько сотен строк, включающий версию прошивки, установленные драйверы, поддерживаемые возможности, серийные номера, номера версий и информацию о шине.
Поэтому следует немного отфильтровать поток, запустив:
Пример вывода информации с конкретными классами:
Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр
lshwЕсли запустить команду без параметров, то на выходе получим огромный список в несколько сотен строк, включающий версию прошивки, установленные драйверы, поддерживаемые возможности, серийные номера, номера версий и информацию о шине.
Поэтому следует немного отфильтровать поток, запустив:
sudo lshw -short или sudo lshw -businfo, чтобы увидеть список классов устройств, которые дальше можно передать утилите.Пример вывода информации с конкретными классами:
sudo lshw -short -class bus -class cpu Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
sudo lshw -html -class storage > log.html Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр
-sanitizeИзменения владельца файла или директории
В Linux каждый пользователь имеет свои собственные файлы, причем он может регламентировать возможность доступа других пользователей к ним.
С этим может помочь команда
Чтобы предоставить пользователю с именем name возможность распоряжаться файлом
Помимо изменения владельца файла, может изменяться группа его владельцев или его владелец и группа его владельцев одновременно.
В результате команды:
владельцем
В Linux каждый пользователь имеет свои собственные файлы, причем он может регламентировать возможность доступа других пользователей к ним.
С этим может помочь команда
chown.Чтобы предоставить пользователю с именем name возможность распоряжаться файлом
file.txt:chown name file.txtПомимо изменения владельца файла, может изменяться группа его владельцев или его владелец и группа его владельцев одновременно.
В результате команды:
chown name:group file.txtвладельцем
file.txt станет пользователь с именем name, а группой его владельцев — group.Создаем файл устройства
В качестве примера рассмотрим процесс создания дополнительного файла loop-устройства.
Для начала следует получить список доступных в системе файлов loop-устройств:
Далее представим, что команда ls вывела 15 файлов loop-устройств (от
где
идентификатор
вспомогательный идентификатор
В качестве примера рассмотрим процесс создания дополнительного файла loop-устройства.
Для начала следует получить список доступных в системе файлов loop-устройств:
ls -al /dev | grep loopДалее представим, что команда ls вывела 15 файлов loop-устройств (от
loop0 до loop14). Исходя из этого, следует создать файл с именем loop15:mknod -m 0777 /dev/loop15 b 7 17где
-m - флаг, задающий права доступа0777 - права доступа/dev/loop15 - название /dev файлаb - обозначение блочного устройстваидентификатор
7 - фиксирован для всех файлов loop-устройств вспомогательный идентификатор
15 - указывает на номер файла loop-устройства.Вывести размер папки
Рассмотрим, как вывести размер всей папки и размер без учета вложенных папок.
Допустим, у вас есть какая-то папка folder. Тогда команда для вывода ее размера выглядит следующим образом:
Также вы можете посмотреть общий размер только самих файлов в папке, без учета содержимого подпапок. Для этого используется опция
Рассмотрим, как вывести размер всей папки и размер без учета вложенных папок.
Допустим, у вас есть какая-то папка folder. Тогда команда для вывода ее размера выглядит следующим образом:
sudo du -sh /home/dir/to/some/folder-s – выводить только размер самой папки, без вложенных подпапок.-h – выводить информацию в привычном виде. Речь о единицах измерения (K – килобайт, M – мегабайт и т. д.).Также вы можете посмотреть общий размер только самих файлов в папке, без учета содержимого подпапок. Для этого используется опция
-S:sudo du -sSh /home/dir/to/some/folderЕсли открыть окно терминала и ввести несколько команд, а после открыть второе окно, то история команд bash во втором окне не будет содержать команд из первого. К тому же, если закрыть первый терминал, а затем второй, то история команд из первого терминала будет перезаписана вторым.
Так происходит из-за того, что история команд записывается только при закрытии терминала, а не после каждой команды. Это можно исправить.
Отредактируем файл
добавив в него строки:
Так история команд будет добавляться к старой, а не перезаписывать ее, и запись будет происходить каждый раз в момент отображения подсказки bash.
Так происходит из-за того, что история команд записывается только при закрытии терминала, а не после каждой команды. Это можно исправить.
Отредактируем файл
.bashrc добавив в него строки:
shopt -s histappendPROMPT_COMMAND='history -a'Так история команд будет добавляться к старой, а не перезаписывать ее, и запись будет происходить каждый раз в момент отображения подсказки bash.
This media is not supported in your browser
VIEW IN TELEGRAM
Устали от бесконечных миграций схемы под каждый новый атрибут в логах? Выбираете между скоростью запросов и гибкостью хранения динамических JSON?
На живом примере разберем стратегии работы с полуструктурированными данными в ClickHouse:
✅Schema-on-Read vs Schema-on-Write: Когда и какой подход выбрать для баланса скорости, гибкости и стоимости.
✅Гибридные модели и Native JSON: Практическое использование современных возможностей ClickHouse.
✅Настройка и типичные запросы: Пишем DDL и сравниваем производительность разных подходов на реальных данных.
Спикер — Никита Елисеев, Senior Data Engineer. Узнайте из первых рук, как строить эффективные решения, а не костыли.
Зарегистрируйтесь, чтобы получить работающие решения и перестать «ломать» данные под базу: регистрация
На живом примере разберем стратегии работы с полуструктурированными данными в ClickHouse:
✅Schema-on-Read vs Schema-on-Write: Когда и какой подход выбрать для баланса скорости, гибкости и стоимости.
✅Гибридные модели и Native JSON: Практическое использование современных возможностей ClickHouse.
✅Настройка и типичные запросы: Пишем DDL и сравниваем производительность разных подходов на реальных данных.
Спикер — Никита Елисеев, Senior Data Engineer. Узнайте из первых рук, как строить эффективные решения, а не костыли.
Зарегистрируйтесь, чтобы получить работающие решения и перестать «ломать» данные под базу: регистрация
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576Команда curl
Запрос страницы
Команда напечатает исходный код
Скачивание файла
Получение заголовка
Если вы хотите посмотреть, какие заголовки отдает сервер, то можно использовать опцию
Измерение продолжительности соединения
Можно использовать опцию
curl утилита командной строки для передачи данных с или на сервер. С помощью curl вы можете загружать или выгружать данные, используя один из поддерживаемых протоколов, включая HTTP, HTTPS, SCP, SFTP и FTP Запрос страницы
curl google.comКоманда напечатает исходный код
google.com в окне вашего терминала.Скачивание файла
curl -O https://domain.com/testzip.tar.gzПолучение заголовка
HTTPЕсли вы хотите посмотреть, какие заголовки отдает сервер, то можно использовать опцию
-I. Она позволяют получить заголовок без тела документа.curl -I https://www.google.comИзмерение продолжительности соединения
Можно использовать опцию
-w для отображения информации в stdout после завершения передачи. Узнаем общее время, которое потребовалось для успешного выполнения запроса:curl -w "%{time_total}\n" -o /dev/null -s www.test.com