1

Раньше у меня был сервер с ежечасным / ежедневным резервным копированием, все легко доступны благодаря этому хорошему учебнику. К сожалению, упомянутый сервер жареный и теперь я должен сделать свои резервные копии на NAS , который не запускается 1 моего любимый Линукс вкуса. Случилось так, что мое предыдущее решение не работало на указанном NAS, потому что его бинарный пакет предлагает меньше возможностей.

Тем не менее, я считаю, что hourly.n - ужасные имена для резервных копий. Я бы предпочел, чтобы они были отформатированы как horaire_YYYY_MM_DD_HHhMM 2, чтобы пользователи сразу знали, когда была сделана резервная копия.

Я хочу хранить 24-часовые резервные копии, а не ежедневные. Обратите внимание, что я не хочу хранить ежечасные резервные копии только в течение последних 24 часов; если по какой-то причине 3 было пропущено несколько резервных копий, я все равно хотел бы сохранить 24 резервных копии, даже если некоторые из них старше одного дня.

Вот как я это делал:

        ls --format=single-column --directory --sort=time $(scheme "*") \
            | tail --lines +$((backup_count + 1)) \
            | xargs --verbose --delimiter="\n" rm -rf

scheme - это просто функция, обеспечивающая правильное форматирование резервной копии каталога, в том числе даты. Здесь используется с * для сопоставления каждой почасовой резервной копии. ls перечисляет каждый почасовой каталог резервных копий, сортирует его в обратном порядке по времени создания 4, tails отбрасывает 24 новых и xargs удаляет оставшиеся.

Теперь я должен убедиться, что я использую только параметры POSIX. Я впервые пошел с:

ls -1 -d -t "$(scheme \*)" \
             | tail -n +$((backup_count + 1)) \
             | sed 's/\n/\0/g' \
             | xargs -0 rm -rf

но ls не расширяет * ; Я заменил его на find , но понятия не имею, как отсортировать результаты по дате создания. Интересно, смог бы я также полностью обойти tail благодаря функции find , которая, вероятно, в любом случае является правильным инструментом для решения этой задачи.

Как я могу запустить команду для каждого почасового резервного копирования, который не является одним из 24 последних?


  1. Ну, возможно, возможно, но это будет означать отказ от всех удобных инструментов и поддержки, предоставляемой поставщиком NAS, который нам не нужен.
  2. horaire вместо hourly потому что пользователи и я - говорящие на французском языке.
  3. Сервер резервного копирования должен быть отключен на один день, потому что он должен быть перемещен, например
  4. Алфавитный порядок, вероятно, мог бы быть таким же хорошим, если бы даты игнорировали летнее время, что было бы неудачным, но приемлемым компромиссом.

0