1

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

#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh admin@myhost.com:~/Backup/

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

5 ответов5

3

Вы ищете rdiff-backup. Это очень, очень хорошо.

3

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

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

1

Я считаю, что машина времени очень эффективна в сочетании с вращением резервных копий за пределами площадки. Это не «использование удаленного сервера», а мысль, что я должен просто указать на это.

1

Можете ли вы создать работу cron в леопарде?

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

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

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

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

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

0

Я запускаю эту работу 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-резервная копия в основном просто mysqldump по каналу через bzip2, а затем называет его в соответствии с датой. У меня также есть сценарий, который берет последний файл резервной копии, распаковывает его, очищает локальную базу данных mysql, а затем вставляет все данные из файла резервной копии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .