Скрипт выборочного резервного копирования в bash
Я использовал эту простую команду (это все, что я могу сделать:) для резервного копирования всего дерева из моих пользовательских данных на сервере NAS в течение года.
cp -r /STORAGE /BACKUP-STORAGE/YYYY-MM-DD
К сожалению, после года службы. Мой пользователь начинает заполнять пространства большим количеством фотографий и клипартов (jpg, gif, bmp), и это начинает замедлять процесс резервного копирования. Пространство также является большой проблемой. Теперь у меня больше нет места для недельного ежедневного набора резервных копий.
Я думаю, что хочу перейти от резервного копирования всего к резервному копированию только данных, не относящихся к образу. Как я могу исключить jpg, gif и bmp из резервной копии? С командой DOS XCOPY это довольно легко, но я действительно не знаю, как это сделать в bash.
Спасибо
5 ответов
Взгляните на rdiff-backup. он не будет хранить реплики неизмененных файлов, только 'diffs'.
если вы хотите продолжить копирование - используйте rsync, а не cp и посмотрите на синтаксис директивы exclude, например, как описано здесь.
не забудьте проверить, работают ли ваши резервные копии [особенно с rdiff или любой другой "расширенной" резервной копией - проверяйте репозиторий, время от времени попробуйте процедуру восстановления].
В Linux у вас всегда есть возможность использовать хороший ол tar
, с помощью --exclude
или же --exclude-from
опции
Если вы хотите придерживаться стратегии полного резервного копирования на каждый день, вы можете использовать rsync с некоторыми флагами --exclude для копирования только данных, не относящихся к изображениям.
Если вы хотите еще больше уменьшить размер резервных копий, вы можете сжать резервные копии; самый быстрый и простой способ сделать это - использовать tar для создания архива (так что вывод будет одним файлом) с -z или -j.
Вы можете еще больше уменьшить свой размер, выполнив более традиционную модель резервного копирования, с еженедельными полными резервными копиями и ежедневными инкрементами, с помощью tar или find+tar.
Вы не упоминаете марку устройства NAS. Некоторые высокопроизводительные устройства NAS (Netapp, Isalon, DataDomain) поддерживают дедупликацию.
Это позволит вам выполнять полное ежедневное резервное копирование, а любые данные будут "дедуплицированы" на устройстве. Эта дедупликация / сжатие полностью прозрачна для пользователя (/home/user/myimages/fooimage.tiff выглядит одинаково на протяжении всей истории резервного копирования).
Я сделал это для файловой системы объемом 300 ГБ, и мы смогли хранить резервные копии на одном устройстве почти на два года.
И я знаю, что это немного касательно, но некоторые более дешевые решения теперь должны быть доступны с использованием Sun ZFS. ZFS также делает дедупликацию, хотя она немного незрелая по сравнению с предложениями Netapp или DataDomain. В следующий раз, когда я смотрю, я рассматриваю ZFS, возможно, когда выйдет FreeNAS 8.0.
Однако, если у вас нет ни одного из них, тогда 'rdiff-backup' также работает очень хорошо.
Я второй tar или rsync. find также будет работать, но потенциально может достигать некоторых ограничений в зависимости от количества файлов в этом дереве. rsnapshot тоже довольно хорош.