Бэкап-синхронизация под OSX

User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Бэкап-синхронизация под OSX

Post by perasperaadastra »

Может быть кто-нибудь подскажет, как осуществить задуманное... Предположим, у меня есть бэкап на внешнем диске. Через какое-то время мне нужно этот бэкап обновить. Можно просто стереть старый и залить новый, но не хотелось бы тратить время на заливку того, что не поменялось. Есть ли такой инструмент, чтобы синхронизировать бэкап? Что-то такое, что бы сверяло местоположение и хеш файлов (или просто размера-даты), и исправляло только то, что изменилось со времени прошлого бэкапа... И другой вопрос вдогонку: будет ли это быстрее, чем просто перезаливка?

PS

Похоже, что "rsync -a --delete" хороший кандидат. Вот только как сделать, чтобы hash файлов сверялся с оригиналом после копирования? Опция -c позволяет обновлять бэкап на основе хеша вместо размера-даты, но я не могу найти опцию, которая сверяла бы хеш после бэкапа.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Бэкап-синхронизация под OSX

Post by perasperaadastra »

Попробовал md5:

find -s ~/folder1 -type f -exec md5 -q {} \; | md5
find -s ~/folder2 -type f -exec md5 -q {} \; | md5

Работает быстро, но хеши у копии и оригинала не совпадают, хотя при проверке пофайлово (с помощью одного очень медленного приложения) все в порядке. Можно ли как-то модифицировать команду выше, чтобы получить файл с хешами для каждого файла?
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Бэкап-синхронизация под OSX

Post by perasperaadastra »

UPDATE2 : Сделал два скрипта.

Code: Select all

while read folder; do
  find -s "$folder" -type f \( ! -iname ".*" \)
done

Code: Select all

for read file; do
  md5 -q "$file"
done
Первый скрипт берет папку из автоматора и выдает список всех файлов второму, а второй выдает hash для каждого файла. Все это выходит в текстовый файл. Вроде бы все работает. Главное было исключить dot-файлы, так как они мне портили всю картину. Без них заработало и сравнение хеша и для папок в целом:
find -s ~/folder1 -type f \( ! -iname ".*" \) -exec md5 -q {} \; | md5
User avatar
xKing
Уже с Приветом
Posts: 1405
Joined: 27 Dec 2010 12:32
Location: Big D

Re: Бэкап-синхронизация под OSX

Post by xKing »

Time Machine на OS X, не?
I wasn't born in Texas, but I got here as fast as I could.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Бэкап-синхронизация под OSX

Post by perasperaadastra »

Time Machine плохо годится для селективного бэкапа. На внешний диск идет только часть папок. Выставлять исключения для TM слишком хлопотно (если это вообще возможно)
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Бэкап-синхронизация под OSX

Post by mskmel »

Code: Select all

rsync -av --delete ${SRC} ${DST}
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Бэкап-синхронизация под OSX

Post by perasperaadastra »

Спасибо.

Return to “Вопросы и новости IT”