Распечатать сопоставленные линии, когда столбец 6 или 7 больше 90%

Сначала смонтируйте / dev / md2 как что-то вроде / srv / DataNew , запустите 1-й раунд копирования как root (на самом деле я бы предложил rsync , IMHO это лучше для такого рода задач):

rsync -a --delete /srv/Data/ /srv/DataNew

При желании вы можете повторно запустить cmd - второе выполнение должно быть быстрее (rsync может пропускать уже скопированные файлы и up2date) и даст приблизительное время, которое нужно использовать для оценки того, сколько времени вам нужно, чтобы остановить приложения, использующие раздел для фактического переключения раздела - см. ниже.

Затем временно остановите и отключите свои приложения, используя разделы / srv / Data (возможно, даже перезагрузите, чтобы гарантировать отсутствие переходных операций записи, которые могут привести к потере данных, убедитесь, что приложения не перезапускаются при загрузке) и повторно запустите тот же rsync cmd выше как root для обновления нового раздела с учетом любых изменений, которые могли произойти в старом разделе с момента предыдущего выполнения rsync .

Может потребоваться несколько повторных запусков, пока команда rsync не перестанет показывать обновления, что означает, что 2 раздела синхронизированы. Каждый такой повторный запуск займет примерно столько же времени, сколько и второе выполнение, упомянутое выше, если вы выбрали его

Затем отключите / srv / Data и / srv / DataNew ] и измените файл / etc / fstab , чтобы смонтировать / dev / md1 в / srv / DataOld и / dev / md2 в / srv / Data .

Затем смонтируйте / srv / Data / srv / DataOld , если вы хотите запустить еще одну проверку синхронизации) или, при желании, перезагрузите компьютер, если хотите, и система должна появиться с новой перегородкой на месте.

Если вы хотите, вы можете запустить еще одну проверку rsync, на этот раз с немного измененным cmd для новых точек монтирования (он не должен показывать никаких обновлений, если не было временных обращений):

rsync -a --delete /srv/DataOld/ /srv/Data

Теперь вы можете повторно включить и повторно -запустите свои приложения, которые не должны заметить никакой разницы (кроме лишнего дискового пространства).

Наконец, если он больше не нужен, вы можете размонтировать / srv / DataOld и удалить его запись из / etc / fstab - все готово.

Если вы не использовали rsync до этого, вы можете захотеть выполнить пробный запуск частей rsync, но с некоторыми временными / тестовыми каталогами и в качестве источника небольшого каталога, который обычно не меняется (чтобы не было неконтролируемых переходных процессов, которые следует избегать, если вы не остановите приложения) просто для того, чтобы привыкнуть к его работе, вы можете использовать новый раздел после монтирования, так как он пуст:

mkdir /srv/DataNew/rsync_test
rsync -a --delete /some_smaller_dir /srv/DataNew/rsync_test

имитировать временное удаление файла в / srv / Data / some_smaller_dir:

touch /srv/DataNew/rsync_test/deleted_file_equivalent
ls -la /srv/DataNew/rsync_test/deleted_file_equivalent

следующий rsync должен найти и удалить этот файл в новом каталоге (и, возможно, других переходных процессах?):

rsync -a --delete /srv/Data/some_smaller_dir /srv/DataNew/rsync_test
ls -la /srv/DataNew/rsync_test/deleted_file_equivalent

следующий rsync больше не должен находить удаленный_файл_эквивалент (повторите, если появятся другие неконтролируемые переходные процессы):

rsync -a --delete /srv/Data/some_smaller_dir /srv/DataNew/rsync_test

Наконец, удалите тестовые каталоги:

rm -rf /srv/DataNew/rsync_test
-1
18.09.2018, 09:05
2 ответа
awk 'NR > 2 && (0+$6 > 90 || 0+$7 > 90)' <file

Это будет считывать данные построчно, и всякий раз, когда строка имеет число больше 90 в 6-м или 7-м поле, оно будет напечатано. Мы пропускаем первые две строки заголовка с NR > 2и добавляем ноль к значениям в столбцах шесть и семь, чтобы принудительно преобразовать в число (знак %в данных будет удален этим )до проверяя их против 90.

1
28.01.2020, 05:10
perl -lane 'print if $. <= 2 || grep { $_ > 90. } @F[5,6]' input-data.file

Строки разбиты на пробелы, а поля, хранящиеся в массиве @F, индексируются с 0. строки заголовка (1,2 )печатаются безоговорочно, а остальные выбираются на основе фильтра, который ищет поля 6 и/или 7, составляющие не менее 90% использования.

0
28.01.2020, 05:10

Теги

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