Создать скрипт ротационной резервной копии на удаленном диске - PullRequest
0 голосов
/ 06 марта 2012

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

Ситуация такова: мы запускаем приложение, из которого мы берем резервные копии (да!).Приложение поставляется со своим собственным скриптом резервного копирования, который при запуске создает папку с текущей датой и временем в качестве имени.В них входит дамп базы данных и некоторые конфигурационные файлы, такие как:

# cd backup
# ll
drwxr-xr-x 2 root root 4096 Mar  6 02:30 2012-03-06_02-15 
# ll 2012-03-06_02-15
-rw-r--r-- 1 root root   26706579 Mar  6 02:16 Application.tar.gz
-rw-r--r-- 1 root root      26060 Mar  6 02:15 Config.tar.gz
-rw-r--r-- 1 root root 5503574530 Mar  6 02:21 DatabaseBackup.sql.gz

. Затем папка резервной копии rsync'd для сетевого диска.

Сценарий также позволяет аргумент для числадней резервного копирования, чтобы сохранить.Что здорово.Но теперь мы начинаем видеть проблемы с дисковым пространством на рабочем сервере.

Репликация функциональности сценариев для выгрузки базы данных и сжатия конфигураций не является проблемой.

Но вот где я заблудился: в идеале я хотел бы сохранить последнюю резервную копию на рабочем сервере и сохранить резервные копии X на сетевом диске.

Я думаю, что это не должноне слишком сложно использовать bash (или, может быть, ожидать?)

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

Вместо конвейера я бы использовал команду find.

Что-то вроде: find /path/to/backups -mtime +1 -exec rm {} \; на рабочем сервере и та же команда с более высоким временем на резервном сервере.У IBM есть отличный ресурс для использования find на их сайте developerworks для дальнейшего чтения.

0 голосов
/ 06 марта 2012

Следующее удалит все, кроме самого последнего элемента в каталоге:

ls -lrt | grep -v total | awk '{print $9}' | head -n -1 | xargs rm 

Если вам требуется X количество оставшихся элементов, вы можете изменить head -n -1 на head -n -X

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...