Доступность пространства на диске

Следующее должно работать в любой версии awk , которая поддерживает пользовательские функции, а также встроенные sprintf () и rshift () функции. Сюда входит GNU awk.

Я позаимствовал и адаптировал алгоритм IP-адреса с десятичной дробью к четырем точкам отсюда:

to-dotted-decimal-notation

Как упоминалось в моем комментарии, переписывание внешнего сценария cdrtoip как awk-функции позволит избежать необходимости вызывать внешний сценарий более 500 000 раз.

awk -F, '
function cdrtoip(addr) {
  return sprintf ("%d.%d.%d.%d",
           rshift(and(addr,0xff000000),24),
           rshift(and(addr,0x00ff0000),16),
           rshift(and(addr,0x0000ff00),08),
           rshift(and(addr,0x000000ff),00))
};

NR > 1 {
    $8 = cdrtoip($8);
    print
}' "$1.csv" >> "$1.csv.tmp"

Я запустил это в тестовом файле с 500 000 строками, и он завершился менее чем за 2 секунды:

$ wc -l input.csv 
500000 input.csv
$ time ./michael.sh < input.csv > output.csv

real 0m1.956s   user 0m1.935s   sys 0m0.018s

-1
23.06.2018, 11:33
2 ответа

Ваш каталог /optнаходится в корневой файловой системе. Ваша корневая файловая система заполнена.

Ваш каталог /homeнаходится в собственной файловой системе. Ваш домашний каталог не заполнен.

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

3
28.01.2020, 05:07

Поиск того, что занимает место на диске

Используйте k4dirstatили baobab, это графические инструменты, которые помогут вам определить, что занимает место. Предупреждение, он сообщит вам, что /usrи несколько других системных каталогов используют много места, но мало о том, какие приложения. Однако для вас это отдельные крепления.

Переместить/opt

Ваш /крошечный. У вас есть /usrи /varна разных креплениях, так что это может не быть проблемой, за исключением того, что /optявляется частью /(, я полагаю, ).

Вы можете переместить /optв /home/opt, а затем заменить /optсимволической ссылкой на /home/opt.

mv -T /opt /home/opt ln -s -t / /home/opt

Кавиетс

Если у вас /homeсмонтирован noexec (или nosuid или может какой-то другой ), то он не будет работать без монтирования привязки,чтобы добавить эти разрешения.

0
28.01.2020, 05:07

Теги

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