Одно (извилистое) решение - сначала сжать его. Текстовый файл журнала должен легко перейти от 9G к значению ниже 5G, после чего вы удалите оригинал, предоставив вам 9G свободного места.
Затем вы передаете этот сжатый файл напрямую через split
, чтобы не занимать больше места на диске. В итоге вы получите сжатый файл и три файла для загрузки.
Загрузите их, затем удалите и распакуйте исходный журнал.
=====
Лучшее решение - просто посчитать строки (скажем, 3 миллиона) и использовать скрипт awk для извлечения и отправки отдельных частей:
awk '1,1000000 {print}' biglogfile > bit1
# send and delete bit1
awk '1000001,2000000 {print}' biglogfile > bit2
# send and delete bit2
awk '2000001,3000000 {print}' biglogfile > bit3
# send and delete bit3
Затем на другом конце вы можете либо обработать bit1
- bit3
по отдельности, либо рекомбинировать их:
mv bit1 whole
cat bit2 >>whole ; rm bit2
cat bit3 >>whole ; rm bit3
И, конечно, это разбиение может быть выполнено с помощью любого из стандартных инструментов обработки текста в Unix: perl
, python
, awk
, head/tail
combo. Это зависит от того, с чем вам удобно.