Замените последовательность в одном файле на содержимое другого файла при совпадении со столбцом

Вы также можете сделать что-то вроде

arr=( *_rcp8p5_*.txt )
paste "${arr[@]}" | cut -f-4,$(seq -s, 8 4 $((4*${#arr[@]}))) >out_rcp8p5.txt

Это вставит все *_rcp8p5_*.txt файлы, затем извлечет поля 1-4 и каждое четвертое поле после.

-1
28.08.2018, 14:56
2 ответа

Поскольку вы уже определили, что не можете создать резервную копию всех 300 ГБ в течение установленного 24-часового периода, вам необходимо пересмотреть свои требования.

На файловом уровне добавочный инструмент, такой как star, duplicityили даже rsync/ rsnapshot, может по-прежнему создавать базовую резервную копию дольше одного дня, но после этого это должно значительно Быстрее. Очевидно, это будет зависеть от количества и размера файлов, которые изменяются в течение каждого 24-часового периода резервного копирования.

На уровне файловой системы моментального снимка может быть достаточно для ваших нужд (, хотя на самом деле это не резервная копия ), тем более, что вы можете затем сделать настоящую резервную копию из моментального снимка на досуге, не обращая особого внимания на время, необходимое для его завершения. Как и прежде, после создания базовой резервной копии создание инкрементной копии может занять значительно меньше времени.

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

Между прочим, резервное копирование на другой диск на том же хосте не следует считать безопасным резервным копированием. Было бы гораздо лучше сделать резервную копию на другой хост. (Если /home/fs_backupявляется удаленным монтированием с другого сервера, серьезно рассмотрите возможность использования duplicityили rsync/ rsnapshotдля прямой связи с удаленным хостом, а не через удаленно смонтированную файловую систему.)

4
28.01.2020, 05:06

Самый быстрый из известных мне методов резервного копирования — это использованиеstar(см. последнюю версию этой программы в schilytools), так как эта программа реализует кольцевой буфер произвольного размера, который находится между процессом файловой системы и другим процессом, который архивирует ввод-вывод. Если размер FIFO выбран правильно, почти все файлы считываются с помощью одного системного вызова read(), и это делает его (вместе с его оптимизированным кодом )очень быстрым.

Этот кольцевой буфер называется FIFOи по умолчанию использует 8MB, но может быть указано использовать любой размер. Максимальное полезное значение составляет половину количества RAMв машине.

starтакже поддерживает рабочие инкрементные дампы, а полный дамп с последующим инкрементным дампом — это то, что я рекомендую для сохранения содержимого файловой системы таким образом, чтобы на последнем этапе требовалось немного времени.

Вы можете заглянуть на справочную страницу:http://schilytools.sourceforge.net/man/man1/star.1.html

Обратите внимание, что эта справочная страница рекомендует делать резервные копии не из действующей файловой системы, а из snapshotна уровне файловой системы.

1
28.01.2020, 05:06

Теги

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