Сортировка огромного списка (130 ГБ) в Linux

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

apt-get changelog *your_package_name*

И согласно Это, чтобы увидеть новую версию пакета, вы можете сделать это: (Не забудьте сделать "apt-get update" перед тем, как хотите получить последний обновленный пакет. )

apt list --upgradable

или это:

apt-get --just-print upgrade

Чтобы сделать что-то более легко читаемым, вы можете вместо этого использовать это perl однострочный синтаксический анализатор:

apt-get --just-print upgrade 2>&1 | perl -ne 'if (/Inst\s([\w,\-,\d,\.,~,:,\+]+)\s\[([\w,\-,\d,\.,~,:,\+]+)\]\s\(([\w,\-,\d,\.,~,:,\+]+)\)? /i) {print "PACKAGE: $1 INSTALLED: $2 AVAILABLE: $3\n"}'

0
14.09.2017, 10:52
1 ответ

sort(, за исключением некоторых урезанных -реализаций, таких как busybox), не ограничен памятью, поскольку использует только ограниченный объем и прибегает к временным файлам, когда достигает этого предела.

Скорее всего, вам не хватило места на диске. Вам потребуется около 130 ГБ свободного места на диске во временной области sort, используемой (, в дополнение к дисковому пространству, используемому для хранения результата, если только вы не записываете файл поверх себя с помощьюsort -o mybigfile mybigfile).

Если в файловой системе /tmpнедостаточно места, установите $TMPDIRместо с большим количеством свободного места на диске (см. также параметр -Tв некоторых реализациях sort):

TMPDIR=~/tmp sort my-big-file > sorted

Чтобы уменьшить объем необходимого временного дискового пространства, в некоторых реализациях sortвы также можете настроить сжатие временных файлов. Это может даже улучшить производительность, если вы выберете компрессор, который легко загружает процессор, например lzop, и имеете файловую систему на вращающихся дисках.

TMPDIR=~/tmp sort --compress-program=lzop my-big-file > sorted
7
28.01.2020, 02:13

Теги

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