Опубликовано пользователем goodigy
Как я делаю бэкап.
У меня есть жесткий диск 3.5, специально большой, чтобы его с собой таскать было не удобно. Его я подключаю раз в месяц и делаю копию раздела /home на него.
Можно просто копировать, но мне нужно чтобы каждый раз копировались только измененные или добавленные файлы, и из архива удалялись файлы которых нет больше и на моем home.
То есть бэкап должен быть инкрементным.
Для этого существует множество утилит, с множеством различного функционала, но так как я это все делаю периодически, и подключаю диск вручную, то мне удобнее использовать rsync.
Определимся сразу, я копирую /home/goodigy в папку на подключенном диске /media/goodigy/backup_disk.
Чтобы начать копирование, нужно выполнить команду
rsync \
--archive \
--delete --delete-excluded \
--progress \
"/home/goodigy/" \
"/media/goodigy/backup_disk" \
--exclude='/docs/'
Пояснения к опциям
- --archive - сохранять всю дополнительную информацию о файлах сохраняются права доступа и информация о владельцах;
-
--delete
--delete-excluded - удаление из резервной копии несуществующих в источнике и исключённых файлов;
-
--progress - выводить информацию о прогрессе передачи;
-
"/home/goodigy/" - каталог источник. Если каталог источник оканчивается на слэш, то сам каталог копироваться не будет, только файлы.
Например, "/home/goodigy" - скопируются только файлы /media/goodigy/backup_disk/файлы, а для "/home/goodigy/" - скопируется и каталог /media/goodigy/backup_disk/goodigy/файлы. -
"/media/goodigy/backup_disk" — каталог приемник, для текущей резервной копии;
-
--exclude='/docs/' - исключение ненужных каталогов и файлов. Выполняется по маске, а не по конкретному пути. Маска задается относительно каталога источника, то есть /home/goodigy/ - корневой. Таким образом, --exclude='/docs/' означает исключить каталог docs. Если нужно оставить каталог, но исключить все файлы из него - '/docs/*'.
Для исключения каталогов в названии которых есть docs - '/docs'.
Вместо названия каталога можно указать **- все каталоги. Например, - '/docs/**/dir', исключить dir из всех каталогов.Чтобы лучше понять как это работает, лучше на создавать каталогов и файлов, и потренироваться на них. Мне это помогло.
Некоторые рецепты можно посмотреть тут.
Еще существует много опций, но я ими не пользуюсь. Посмотреть их можно тут.
Также, существует графическая утилита на основе rsync — grsync.
grsync в Ubuntu 14.04 выгляди вот так
Тут все предельно просто и понятно.