Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Команды BASH
  3. Bash - работа с дисками и другими накопителями

Bash - работа с дисками и другими накопителями

Запланировано Прикреплена Закрыта Перенесена Команды BASH
4 Сообщения 1 Posters 6 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал в отредактировано
    #1

    Содержание

    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал в отредактировано
      #2

      Увеличение свободного места системного диска Linux


      Безопасно удаляем:

      1. Большие активные файлы логов в /var/log/ (например, syslog, kern.log, daemon.log, которые Logrotate еще не успел ротировать).
      2. Ротированные сжатые файлы (*.gz, *.1, и т.д.) в /var/log/, которые также не попали в список подкаталогов.

      🛠️ План очистки

      Вам нужно выполнить обе процедуры, чтобы получить максимальный эффект, начиная с наиболее безопасных:

      1. Очистка журналов Systemd (Journald)

      Это самая большая видимая статья (201M, которая должна была быть больше 3ГБ, но, возможно, вы уже частично их чистили). Выполните ограничение по времени и размеру для безопасности:

      • Очистка записей старше 7 дней:

        sudo journalctl --vacuum-time=7d
        
      • Ограничение максимального размера до 500M (если проблема повторяется):

        sudo journalctl --vacuum-size=500M
        

        Этот шаг гарантирует, что Journald не будет снова занимать гигабайты.


      2. Очистка старых ротированных логов (Logrotate files)

      # Найти и удалить все сжатые файлы логов (.gz)
      sudo find /var/log/ -name "*.gz" -delete
      
      # Найти и удалить все старые файлы логов, созданные ротацией (например, .1, .2, .old)
      sudo find /var/log/ -name "*.[0-9]" -delete
      sudo find /var/log/ -name "*.old" -delete
      

      3. Очистка активных больших файлов

      Если после выполнения шагов 1 и 2 все еще остается большой объем (более 100 МБ) в /var/log, значит, у вас есть один или несколько очень больших, активных файлов логов (например, syslog).

      ВНИМАНИЕ: Мы очищаем (truncate), а не удаляем эти файлы, чтобы не нарушить работу служб:

      # Очистка основного системного лога (если он большой)
      sudo truncate -s 0 /var/log/syslog
      
      # Очистка лога ядра (если он большой)
      sudo truncate -s 0 /var/log/kern.log
      
      # Перезапуск службы логов для гарантии
      sudo systemctl restart rsyslog
      

      После выполнения Шагов 1 и 2, запустите sudo du -sh /var/log еще раз. Общий размер должен значительно уменьшиться.

      Проверьте, какие именно большие файлы находятся в /var/log/ (а не в подкаталогах), чтобы точно знать, что вы очищаете

      sudo ls -lh /var/log/
      

      🛡️ Почему эти команды безопасны

      1. Целевое удаление: Команды нацелены исключительно на файлы, которые уже прошли ротацию (Logrotate) и являются архивами или старыми копиями активных журналов.

        • Файлы с расширением .gz — это сжатые, очень старые копии логов.
        • Файлы с расширением .[0-9] (например, .1, .2, .3) — это старые копии логов, которые были заменены более новыми.
        • Файлы с расширением .old — это также старые, переименованные копии.
      2. Не затрагивают активные службы:

        • Эти команды не удаляют активные, текущие файлы журналов (например, /var/log/syslog, /var/log/kern.log, /var/log/nginx/access.log).
        • Они не затрагивают базу данных Systemd Journal (/var/log/journal/), которую мы очищали отдельной командой ранее.
        • Они не нарушают работу служб, которые прямо сейчас пишут в активные логи.
      3. Использование find и -delete: Команда find с опцией -delete — это безопасный и эффективный способ массового удаления файлов, найденных по конкретному шаблону.

      Вывод: Смело запускайте эти три команды. Они предназначены именно для того, чтобы освободить место, занятое архивами и старыми копиями системных и прикладных журналов, не влияя на стабильность работы.

      После их выполнения вы должны увидеть значительное уменьшение размера каталога /var/log.


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

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

      🗑️ Очистка пакетов APT

      Система управления пакетами APT со временем накапливает кэши и ненужные зависимости.

      • Удаление неиспользуемых зависимостей:
        Эта команда удаляет пакеты, которые были установлены автоматически как зависимости для других программ, но теперь эти программы удалены, и сами зависимости больше не нужны.

        sudo apt autoremove
        
      • Очистка кэша загруженных пакетов:
        APT сохраняет копии загруженных установочных файлов (.deb) в каталоге /var/cache/apt/archives. Их можно удалить.

        • Очистка кэша только для устаревших пакетов:
          sudo apt autoclean
          
        • Полная очистка кэша APT (освободит больше всего места):
          sudo apt clean
          

      🧹 Удаление старых ядер Linux

      При обновлении системы могут устанавливаться новые версии ядра Linux, а старые остаются для возможности отката. Если система работает стабильно, можно удалить старые ядра, оставив только текущее и, возможно, одно предыдущее на всякий случай. Старые ядра и связанные с ними заголовки (linux-image-* и linux-headers-*) могут занимать значительное место, особенно в разделе /boot.

      Для автоматического и безопасного удаления старых неиспользуемых ядер можно воспользоваться командой autoremove (если ядра были установлены как зависимости):

      sudo apt autoremove --purge
      

      Флаг --purge гарантирует, что будут удалены и конфигурационные файлы.


      📄 Очистка журналов и временных файлов

      • Очистка системного журнала (Journald):
        Журналы могут накапливаться и занимать много места в каталоге /var/log. Вы можете ограничить их размер или удалить старые записи.
        • Удаление записей старше, например, 7 дней:
          sudo journalctl --vacuum-time=7d
          
        • Ограничение максимального размера журнала (например, до 100M):
          sudo journalctl --vacuum-size=100M
          
      • Очистка временных файлов:
        Многие временные файлы хранятся в /tmp, но обычно они автоматически очищаются при перезагрузке. Если вы не перезагружались долгое время, вы можете очистить их вручную. Будьте осторожны с ручной очисткой, лучше полагаться на автоматическую:
        sudo rm -rf /tmp/*
        

      📦 Удаление "осиротевших" конфигурационных файлов

      После полного удаления пакетов иногда остаются их конфигурационные файлы (статус rc - removed, config files). Эти файлы обычно очень маленькие, но их можно удалить, если вы уверены, что не будете снова устанавливать эти программы.

      Для просмотра и удаления:

      1. Показать пакеты с "осиротевшими" конфигами:

        dpkg -l | grep '^rc'
        
      2. Полное удаление (purge) этих пакетов:

        dpkg -l | awk '/^rc/ {print $2}' | sudo xargs dpkg --purge
        

        Эта команда извлекает имена всех пакетов со статусом rc и передает их для полного удаления.


      🖥️ Использование сторонних утилит (опционально)

      Существуют графические утилиты, такие как Ubuntu Cleaner или BleachBit, которые предоставляют удобный интерфейс для выполнения многих из этих задач, включая очистку кэша браузеров и миниатюр. Если вам некомфортно работать в терминале, можете рассмотреть их установку, но будьте внимательны при выборе опций очистки.

      Главное правило: всегда выполняйте команды очистки с sudo и точно знайте, что вы удаляете, чтобы не повредить работающую систему.

      1 ответ Последний ответ
      0
      • A Не в сети
        A Не в сети
        Admin
        написал в отредактировано
        #3

        Просмотр занятого места на диске


        Вот актуальный на 2025 год набор команд для анализа занятого места в Linux — от самых быстрых и красивых до максимально точных.

        Топ-8 рабочих команд (копируй-вставляй)

        # 1. Самая красивая и удобная (2025 стандарт)
        sudo ncdu /                     # интерактивный ncdu (лучше всего)
        
        # 2. Классика с сортировкой по размеру (мой ежедневный выбор)
        sudo du -h --max-depth=1 / 2>/dev/null | sort -hr
        
        # 3. Топ-15 самых тяжёлых каталогов в системе
        sudo du -h --max-depth=3 / 2>/dev/null | sort -hr | head -15
        
        # 4. Только реальные каталоги (без виртуальных /proc, /sys, /dev)
        sudo du -h --max-depth=1 --exclude={/dev,/proc,/sys,/tmp,/run} / | sort -hr
        
        # 5. Быстрый анализ корня + сортировка
        sudo du -sh /* 2>/dev/null | sort -hr
        
        # 6. Что именно жрёт место в /home (включая скрытые папки)
        du -sh ~/.??* ~/* | sort -hr | head -20
        
        # 7. Самые большие файлы в системе (топ-50)
        sudo find / -type f -printf '%s %p\n' 2>/dev/null | sort -nr | head -50 | numfmt --to=iec-i --suffix=B
        
        # 8. Графический анализ (GUI, но из терминала)
        sudo baobab /                   # или gnome-disks → правый клик → Analyze
        

        Установка лучших утилит (одной строкой)

        # Debian / Ubuntu / Mint / Pop!_OS
        sudo apt install ncdu tree baobab numfmt
        
        # Fedora / Alma / Rocky
        sudo dnf install ncdu tree baobab numfmt
        
        # Arch / Manjaro
        sudo pacman -S ncdu tree baobab numfmt
        

        Мои личные алиасы (добавь в ~/.bashrc или ~/.zshrc)

        alias big="sudo du -h --max-depth=1 / 2>/dev/null | sort -hr"
        alias big2="sudo du -h --max-depth=2 / 2>/dev/null | sort -hr | head -30"
        alias bigfiles="sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -hr"
        alias cleanme="sudo du -sh ~/.cache/* /var/cache/* /tmp/* 2>/dev/null | sort -hr"
        

        Однострочники для самых частых задач

        # Что жрёт место в /var
        sudo du -h --max-depth=2 /var | sort -hr | head -20
        
        # Docker — сколько весит?
        sudo du -h /var/lib/docker | sort -hr | head -10
        
        # Snap-пакеты (часто жрут 10–30 ГБ)
        sudo du -h /var/lib/snapd/snaps | sort -hr
        
        # Самые жирные папки пользователя
        du -sh ~/* ~/.local/* ~/.cache/* 2>/dev/null | sort -hr | head -15
        

        Самая лучшая команда на все случаи жизни (2025)

        sudo ncdu --exclude-caches --exclude-kernels / 
        
        • Интерактивная
        • Показывает в ГБ/МБ
        • Можно удалять прямо из интерфейса
        • Исключает мусор
        • Работает в 100 раз быстрее, чем du

        Итог: запомни всего три команды

        sudo ncdu /                     # лучшее, что есть
        sudo du -h --max-depth=1 / | sort -hr   # классика
        sudo du -sh /* | sort -hr       # когда лень писать много
        

        Больше ничего придумывать не надо.
        С ncdu ты найдёшь любой «пожиратель» места за 10 секунд.

        1 ответ Последний ответ
        0
        • A Не в сети
          A Не в сети
          Admin
          написал в отредактировано
          #4

          Узнать общий размер текущего каталога


          Вот актуальный на 2025 год набор команд для быстрого и точного определения размера текущего (или любого) каталога. Всё работает везде: Ubuntu, Debian, Fedora, Arch, Alpine и т.д.

          Топ-7 команд (копируй-вставляй)

          # 1. Самая популярная и правильная (2025 стандарт)
          du -sh .                        # размер текущей папки
          
          # 2. Ещё быстрее и красивее (мой ежедневный выбор)
          du -sh --apparent-size .        # реальный размер файлов (а не блоков на диске)
          
          # 3. Размер без учёта скрытых папок (полезно в /home)
          du -sh -- *                     # только видимые папки и файлы
          
          # 4. Размер с учётом только реальных файлов (игнорирует sparse-файлы, Docker-образы и т.п.)
          du -sh --apparent-size --exclude="*.img" --exclude="*.qcow2" .
          
          # 5. Самый быстрый способ (не сканирует содержимое, только метаданные)
          dust -r .                       # после установки: cargo install dust или sudo apt install dust
          
          # 6. Интерактивный и самый красивый (рекомендую всем)
          ncdu .                          # покажет всё дерево + можно удалять прямо из интерфейса
          
          # 7. Размер в байтах (удобно для скриптов)
          du -sb .                        # точное количество байт
          

          Полезные вариации

          # Размер нескольких папок сразу
          du -sh ~/{Downloads,Documents,Desktop,.cache,.local} 2>/dev/null | sort -hr
          
          # Размер только папок первого уровня (с сортировкой)
          du -sh ./* | sort -hr
          
          # Размер с исключениями (например, без node_modules и .git)
          du -sh --exclude="./node_modules" --exclude="./.git" .
          
          # Самые жирные папки внутри текущей (топ-20)
          du -h --max-depth=2 . 2>/dev/null | sort -hr | head -20
          

          Установка самых удобных утилит (2025)

          # Ubuntu/Debian/Mint
          sudo apt install ncdu dust   # dust — это как du, но в 10 раз быстрее и красивее
          
          # Fedora
          sudo dnf install ncdu dust
          
          # Arch/Manjaro
          sudo pacman -S ncdu dust
          

          Мои алиасы (добавь в ~/.bashrc или ~/.zshrc)

          alias size="du -sh ."
          alias sizeof="du -sh"          # sizeof Downloads
          alias big="du -h --max-depth=1 . | sort -hr"
          alias fat="dust -r"
          alias clean="ncdu ~"
          

          Итог: запомни всего три команды на всю жизнь

          du -sh .          # классика, всегда работает
          dust .            # самый быстрый и красивый (2025)
          ncdu .            # когда нужно покопаться и почистить
          

          Больше ничего придумывать не надо.
          dust и ncdu — это то, чем пользуются все продвинутые линуксоиды в 2025 году.

          1 ответ Последний ответ
          0
          Ответить
          • Ответить, создав новую тему
          Авторизуйтесь, чтобы ответить
          • Сначала старые
          • Сначала новые
          • По количеству голосов


          • Войти

          • Login or register to search.
          Powered by NodeBB Contributors
          • Первое сообщение
            Последнее сообщение
          0
          • Категории
          • Последние
          • Метки
          • Популярные
          • World
          • Пользователи
          • Группы