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

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

В настоящее время я запускаю скрипт в Leopard каждые несколько дней, чтобы убедиться, что я создал резервную копию своих данных на удаленном сервере, используя:

#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/

У этого метода есть ограничения, например, я не могу просматривать файлы, которые были удалены несколько резервных копий назад. Каков наилучший способ автоматизировать этот процесс?

решение1

Можно ли настроить cron-задание в Leopard?

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

Но ваш пример сбивает с толку: вы копируете файлы из ~/Documents в ~/Workspace или в ~/Backup/ на myhost.com?

Это может быть особенностью Leopard, но похоже, что вы просто копируете из ~/Documents в ~/Workspace, в этом случае остальная часть строки может быть проигнорирована (и вам не нужно вызывать ssh)

Вам также следует рассмотреть возможность завершения спецификации исходного каталога символом /.

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

решение2

Вы ищетеrdiff-резервное копирование. Это очень, очень хорошо.

решение3

Я обнаружил, что пакет rsnapshot очень хорош, он доступен во всех дистрибутивах, и только что установил его на свой Mac.

Это оболочка для rsync, которая обеспечивает инкрементальное резервное копирование, включая ежечасное, ежедневное, еженедельное и ежемесячное.

решение4

Я запускаю это задание cron каждый день в 5:30 утра:

#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;

Затем на моем веб-хостинге у меня есть скрипт mysql-clean, который очищает мою базу данных и удаляет весь хлам. mysql-backup по сути просто mysqldump, пропущенный через bzip2, затем именующий его в соответствии с датой. У меня также есть скрипт, который берет последний файл резервной копии, распаковывает его, очищает локальную базу данных mysql, затем вставляет все данные из файла резервной копии.

Связанный контент