Графический интерфейс Linux перестает отвечать на запросы при выполнении операций ввода-вывода с тяжелым диском - что настраивать?

Используйте find и его опцию -exec (здесь используется GNU find для предиката -regex):

find . -regextype posix-egrep -regex '.*/aaa_bbb_ccc_ddd_(cost|revenue|benefit|profit|loss)_[[:alpha:]]+_[0-9]+\.csv\.gz' -exec mv {} "$DESTN_DIR" \;

Примечание:

  • find . указывает find искать файлы, начинающиеся в текущем каталоге.

  • По умолчанию GNU find использует регулярные выражения в стиле emacs. Я предпочитаю -regextype posix-egrep, но вы можете перейти на любой из поддерживаемых стилей, с которыми вы знакомы.

  • Для выбора файлов используется регулярное выражение: -regex '.*/aaa_bbb_ccc_ddd_(cost|revenue|benefit|profit|loss)_[[:alpha:]]+_[0-9]+\.csv\.gz'. Это позволяет использовать стандартный префикс aaa_bbb_ccc_ddd_, за которым следует одно из слов, указанных (cost|revenue|benefit|profit|loss), за которым следует другое неопределенное слово, _[[[:alpha:]]+, за которым следует дата, _[0-9]+, за которым следует желаемое расширение . csv.gz. Возможно, вы захотите уточнить это.

  • Все найденные файлы будут перемещены в целевой каталог с помощью команды -exec mv {} "$DESTN_DIR" \;. Когда find находит подходящий файл, он выполняет эту команду, заменяя {} именем файла. Это сработает, даже если в именах файлов есть пробелы, новые строки или другие сложные символы.

Использование стиля регулярных выражений по умолчанию (emacs)

Стиль regex по умолчанию для GNU find требует некоторого экранирования операторов группировки и чередования:

find . -regex '.*/aaa_bbb_ccc_ddd_\(cost\|revenue\|benefit\|profit\|loss\)_[[:alpha:]]+_[0-9]+\.csv\.gz' -exec echo mv {} targetdir \;

Mac OSX

Версия find для Mac OSX (man page here) поддерживает -regex, но не -regextype. Однако я не удивлюсь, если синтаксис regex потребует некоторых тонких изменений.

IBM AIX 5

Страница руководства для версии find для IBM AIX находится здесь. Она не поддерживает -regex.

5
27.01.2019, 02:55
1 ответ

Я бы nice -n 19процесс резервного копирования (дал низкий приоритет ЦП )и, возможно, такжеionice -c 3(ввод-вывод в режиме ожидания ).

rsync также будет значительным улучшением (он не будет каждый раз копировать 100Gb ). Например, мои сценарии резервного копирования выглядят так:

SOURCE=/whatever/precious/directory
DESTINATION=/media/some_usb_drive/backup
nice -n 19 rsync --verbose --archive --compress --delete --force --recursive --links --safe-links --rsh ssh --exclude-from=$EXCLUDEFILE $SOURCE $DESTINATION
# or
nice -n 19 ionice -c 3 rsync --verbose --archive --compress --delete --force --recursive --links --safe-links --rsh ssh --exclude-from=$EXCLUDEFILE $SOURCE $DESTINATION

(exclude -from используется, чтобы избежать каталогов.cache, файлов.o и т. д.)

1
27.01.2020, 20:42

Теги

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