/dev/vda1 смонтирован в / и использует 94% дискового пространства

Следуя этой идее символической ссылки ctrl -alt -delor , используя shufиз GNU coreutils (этот код также использует readlink -fиз GNU coreutils, чтобы получить абсолютный путь к данному файлу для создания символической ссылки):

#!/bin/sh -e

shufdir=shufdir  # directory at this path will be deleted and recreated

rm -rf "$shufdir"
mkdir -p "$shufdir"

printf '%s\n' "$@" | shuf |
while read -r fname; do
    ln -s "$( readlink -f "$1" )" "$shufdir/$fname"
    shift
done

Сценарий берет имена файлов для перетасовки в своей командной строке. Он создает $shufdirкак подкаталог и продолжает перемешивать все заданные имена файлов. Перемешанные имена файлов затем символически связываются в $shufdirс исходным списком имен файлов, заданным в командной строке.

Код предполагает, что имена путей не содержат новых строк.

Тестирование:

$ ls -l
total 4
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-1
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-10
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-2
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-3
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-4
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-5
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-6
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-7
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-8
-rw-r--r--  1 kk  wheel    0 Mar 14 18:13 file-9
-rw-r--r--  1 kk  wheel  247 Mar 14 18:39 script.sh
$ sh script.sh file-*
$ ls -l shufdir/
total 0
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-1 -> /tmp/shell-yash.WkdNi1GD/file-8
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-10 -> /tmp/shell-yash.WkdNi1GD/file-9
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-2 -> /tmp/shell-yash.WkdNi1GD/file-4
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-3 -> /tmp/shell-yash.WkdNi1GD/file-1
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-4 -> /tmp/shell-yash.WkdNi1GD/file-3
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-5 -> /tmp/shell-yash.WkdNi1GD/file-2
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-6 -> /tmp/shell-yash.WkdNi1GD/file-6
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-7 -> /tmp/shell-yash.WkdNi1GD/file-7
lrwxr-xr-x  1 kk  wheel  31 Mar 14 18:39 file-8 -> /tmp/shell-yash.WkdNi1GD/file-5
lrwxr-xr-x  1 kk  wheel  32 Mar 14 18:39 file-9 -> /tmp/shell-yash.WkdNi1GD/file-10

Ничто не мешает вам копировать или перемещать файлы в новый каталог или использовать жесткие ссылки вместо символических ссылок (если каталог $shufdirнаходится в том же разделе, что и исходные файлы ). Вам просто нужно изменить строку с помощью команды ln -s.

1
20.06.2020, 19:52
1 ответ

общий подход

Используйте du -hx --max-depth=1 /, чтобы увидеть, какие каталоги первого уровня содержат большую часть данных. Повторите это для соответствующих подкаталогов (, например.du -hx --max-depth=1 /home)пока не дойдете до тех каталогов, которые содержат много данных (несколько больших файлов или много маленьких файлов ).

Затем подумайте, откуда берутся эти данные, (важные данные, файлы журналов ), которые вы можете удалить, и как можно замедлить рост хранимых данных. Возможно, поможет автоматическое удаление старых данных(man logrotate).

Проблема в вашем случае

Ваша проблема связана с обновлениями ядра, которые не удаляют старые ядра. В какой-то степени полезно (сохранить один или два )на случай, если новый вызовет проблемы. У вас, вероятно, тоже много таких файлов в /boot.

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

Я не использую Ubuntu, поэтому не могу сообщить никаких подробностей, но есть решение Ubuntu для автоматического удаления старых ядер после обновлений.Должно быть легко найти с помощью поисковой системы или наhttps://askubuntu.com/

1
18.03.2021, 23:26

Теги

Похожие вопросы