Вы также можете сделать что-то вроде
arr=( *_rcp8p5_*.txt )
paste "${arr[@]}" | cut -f-4,$(seq -s, 8 4 $((4*${#arr[@]}))) >out_rcp8p5.txt
Это вставит
все *_rcp8p5_*.txt
файлы, затем извлечет поля 1-4 и каждое четвертое поле после.
Поскольку вы уже определили, что не можете создать резервную копию всех 300 ГБ в течение установленного 24-часового периода, вам необходимо пересмотреть свои требования.
На файловом уровне добавочный инструмент, такой как star
, duplicity
или даже rsync
/ rsnapshot
, может по-прежнему создавать базовую резервную копию дольше одного дня, но после этого это должно значительно Быстрее. Очевидно, это будет зависеть от количества и размера файлов, которые изменяются в течение каждого 24-часового периода резервного копирования.
На уровне файловой системы моментального снимка может быть достаточно для ваших нужд (, хотя на самом деле это не резервная копия ), тем более, что вы можете затем сделать настоящую резервную копию из моментального снимка на досуге, не обращая особого внимания на время, необходимое для его завершения. Как и прежде, после создания базовой резервной копии создание инкрементной копии может занять значительно меньше времени.
Вы не указали, как должна храниться ваша резервная копия, но для многих небольших -ish-файлов может подойти что-то вроде rsnapshot
. (Я использую его для файловых -резервных копий многих наших внутренних файловых серверов, поскольку он позволяет нам легко получить доступ к отдельным файлам в целях восстановления.)
Между прочим, резервное копирование на другой диск на том же хосте не следует считать безопасным резервным копированием. Было бы гораздо лучше сделать резервную копию на другой хост. (Если /home/fs_backup
является удаленным монтированием с другого сервера, серьезно рассмотрите возможность использования duplicity
или rsync
/ rsnapshot
для прямой связи с удаленным хостом, а не через удаленно смонтированную файловую систему.)
Самый быстрый из известных мне методов резервного копирования — это использованиеstar
(см. последнюю версию этой программы в schilytools
), так как эта программа реализует кольцевой буфер произвольного размера, который находится между процессом файловой системы и другим процессом, который архивирует ввод-вывод. Если размер FIFO выбран правильно, почти все файлы считываются с помощью одного системного вызова read()
, и это делает его (вместе с его оптимизированным кодом )очень быстрым.
Этот кольцевой буфер называется FIFO
и по умолчанию использует 8MB
, но может быть указано использовать любой размер. Максимальное полезное значение составляет половину количества RAM
в машине.
star
также поддерживает рабочие инкрементные дампы, а полный дамп с последующим инкрементным дампом — это то, что я рекомендую для сохранения содержимого файловой системы таким образом, чтобы на последнем этапе требовалось немного времени.
Вы можете заглянуть на справочную страницу:http://schilytools.sourceforge.net/man/man1/star.1.html
Обратите внимание, что эта справочная страница рекомендует делать резервные копии не из действующей файловой системы, а из snapshot
на уровне файловой системы.