Собственно есть два вопроса:
1. Как вы делаете бекапы?
2. Как вы храните фотки?
Фотки вынесены в отдельны вопрос, потому что это особая категория данных, они не всегда ненужны, их нужно периодически пополнять и изредка просматривать.
Еще не все хотелось бы держать на ssd, места мало, потому идеально было бы иметь возможность выбирать то, что должно быть на диске, а что может хранится на сервере.
Попытался для целей синхронизации использовать ownCloud, как выяснялось его клиент очень медленно синхронизирует множество мелких файлов, 200к файлов объемом ~40 гигабайт клиент оценивает в дни работы (это против сервера который у меня стоит рядом).
Думаю причина в webdav, каждый файл отправляется отдельный запросом, с установлением tcp соединения, с раундтрипом. Сервером, куда осуществляется синхронизация, у меня служит HP N40L, еще старая версия, с AMD Turion.
После запуска синхронизации CPU на сервере оказался занят под завязку процессами apache2 -DFOREGROUND. SSL у меня был организован через nginx, прямая загрузка данных, по http, ничего не поменяла. База - postgres.
Потому и возник вопрос, чтоб вновь не потратить время на неработающее решение. Поделитесь вашими лучшими практиками. Спасибо.
====================================
Обновлено.
Перешел на Syncthing. Синхронизация происходит между компьютером, ноутбуком и NAS. Для синхронизируемых директорий версионность настроенна только на NAS, в силу доступного объема на диске.
От идеи полной синхронизации всех фалов пришлось отказаться, скорость падала до килобит. Сейчас синхронизируются конкретные директории с значимыми файлами, на проекты с исходниками настроенны исключения для директорий создаваемых в момент сборки.
Из неудобств: для каждого пользователя в системе проще иметь свой экземпляр Syncthing, но в этом случае проедется выставить недефолтные порты, для webui и тот который обычно 22000.
За почти месяц эксплуатации Syncthing v0.14.39 никаких проблем не встретил.
Для фоток организовал синхронизацию с последующей автоматической каталогизацией по модели камеры и дате создания снимка. Каталогизацию выполняет exiftool по cron, вот вызов exiftool из написанного bash-скрипта:
exiftool "-Directory<$DST_DIR/\${model;}/\${datetimeoriginal}" \
-d '%Y-%m' \
-if '$exif:model' \
-r "$SRC_DIR"
Отдельно отмечу про видео, оно не содержит информацию про камеру, как у фоток. У меня 4 устройства, во всех это так. Но принадлежность видео к той или иной камере можно узнать по тегам MajorBrand, CompatibleBrands, они отличаются, по этому для каждой устройства прописаны такие правила синхронизации:
sync_videos_sony_cam() {
echo "## Sync videos for Sony Cam"
exiftool "-Directory<$DST_DIR/DSC-H70/\${MediaCreateDate;}" \
-d '%Y-%m' \
-if '$MajorBrand eq "MPEG-4 (.MP4) for SonyPSP"' \
-if '$CompatibleBrands eq "MSNV, mp42, isom"' \
-r "$SRC_DIR"
}
Всем спасибо за помощь в выборе инструмента синхронизации.