Скрипт для выборки самых новых файлов
Здравствуйте.
У меня появилась необходимость формировать список самых последних резервных копий, при чем "свежесть" файлов нельзя узнать по атрибутам (т.е варианты использования -mtime, к сожалению отпадают), т.к файлы в хранилище заливаются не сразу после того, как они сделались, но зато само имя файла уже содержит в себе дату создания. Несортированый список выглядит, например так (на самом деле он значительно больше): vzdump-qemu-141-2020_10_02-00_45_45.vma.gz vzdump-qemu-141-2020_09_28-00_45_16.vma.gz vzdump-qemu-126-2020_09_28-00_00_02.vma.gz vzdump-qemu-141-2020_09_30-00_46_19.vma.gz vzdump-qemu-126-2020_09_30-00_00_02.vma.gz vzdump-qemu-106-2020_10_02-00_03_53.vma.gz vzdump-qemu-135-2020_09_30-00_35_45.vma.gz vzdump-qemu-126-2020_10_02-00_00_02.vma.gz vzdump-qemu-135-2020_09_28-00_36_20.vma.gz vzdump-qemu-135-2020_10_02-00_35_57.vma.gz vzdump-qemu-106-2020_09_28-00_03_45.vma.gz vzdump-qemu-106-2020_09_30-00_04_12.vma.gz Здесь, например часть названия vzdump-qemu-141 означает, что это бэкап виртуальной машины, имеющей ID 141, но как видно из списка, для этой ВМ он здесь не один, есть и судя по названию, включающему дату, vzdump-qemu-141-2020_10_02-00_45_45.vma.gz является самым свежим, а vzdump-qemu-141-2020_09_28-00_45_16.vma.gz и vzdump-qemu-141-2020_09_30-00_46_19.vma.gz, соответственно не нужны в новом списке. То же самое необходимо проделать и со строками для виртуалок, имеющих другие ID. По скольку тут нет абсолютно одинаковых строк, не вижу варианты использования uniq и sort (или не умею их правильно готовить). Помогите, пожалуйста, если есть соображения. |
Код:
ls *.vma.gz |sort -rk1.17 |head -4 https://stackoverflow.com/questions/...tching-pattern |
Время: 10:11. |
Время: 10:11.
© OSzone.net 2001-