Давно хотел написать про то как я храню свои файлы, как делаю бэкапы, но все никак не доходили руки. Недавно тут появилась статья, в чем-то похожую на мою но с другим подходом.
Я уже много лет пытаюсь найти идеальный для себя метод для хранения файлов. Думаю я его нашел, но всегда есть что улучшить, если есть какие-то мысли как сделать лучше, с удовольствием почитаю.
Начну с того что расскажу пару слов о себе, я занимаюсь веб разработкой и в свободное время фотографирую. Отсюда вывод что хранить мне нужно рабочие и личные проекты, фото, видео ну и другие файлы.
У меня где-то 680 GB файлов, из них процентов 90 это фото и видео.
Круговорот файлов в моих хранилищах:
Тут примерная схема того как и где хранятся все мои файлы.
Теперь подробнее.
Как видно, сердцем всего является мой NAS, а именно Synology DS214, один из самых простых NAS-ов у компании Synology, тем не менее со всем что мне нужно он справляется.
Dropbox
Рабочая машина у меня macbook pro 13, 2015 года. У меня там 512GB но помещаются само собой не все файлы, храню только то что нужно на данный момент. Все свои личные файлы и папки синхронизирую с Dropbox-ом, знаю что это не очень надежно, но он выполняет только функцию синхронизации. И делает он это лучше всего, по крайней мере из того что я перепробовал. А перепробовал я все знаменитые и не очень облаки.
У Synology так же есть свое облако, можно его развернуть на своем NAS-е, я несколько раз пробовал пересесть с Dropbox на Synology Cloud Station, но там всегда были проблемы с синхронизацией, всегда какие-то ошибки, или не все синхронизировал.
Все важные файлы хранятся в папке Dropbox, иногда я сохраняю что-то на рабочий стол, чтоб что-то не потерять сделал симлинк в папку Dropbox при помощи программы MacDropAny.
Папка Download у меня никак не синхронизируется но там и нет ничего важного, только временные файлы. Если качаю что-то важное, то копирую в соответствующую папку в Dropbox.
Мои приключения с DropboxКогда-то давно, где-то в 2013-2014 я хранил все файлы в Dropbox-e и только в нем, не было никаких бэкапов. Тогда у меня не было 1Тb, то есть я не платил за него, у меня было где-то 25Gb, которые я заработал путем приглашения друзей или других заданий.
В одно прекрасное утро я включил компьютер и все мои файлы исчезли, так же получил письмо от Dropbox где они извиняются и что файлы мои пропали по их вине. Они дали мне ссылку по которой я мог восстановить свои файлы но само собой ничего не восстановились. За то они подарили мне на год 1Tb, после чего я стал их клиентом, как бы странно это не звучало, но никогда им не доверял.
Как писал выше, не смог найти более подходящее для меня облако, во первых еще не было проблем синхронизации, во вторых много всяких сервисов работают только с Dropbox.
Git
Файлы по работе хранятся на рабочем сервере, личные проекты на GitLab-е, тут все просто.
Time Machine
Так же я делаю бэкап всей системы, исключая папку Dropbox и Downloads само собой, чтоб не занимать зря место. Бэкап системы делаю через Time Machine, отличный инструмент, не раз выручал. Делаю на том же NAS-е, благо там есть такая функция. Можно делать и на внешний HDD конечно, но это не так удобно. Нужно каждый раз подключать внешний диск и самому запускать Time Machine. Из-за лени, часто такие бэкапы делал раз в несколько недель. На сервер же он автоматом делает бэкап, я даже не замечаю когда он это делает. Я работаю из дому, так что у меня всегда есть свежая резервная копия всей моей системы. Делаются копию несколько раз за день, не считал сколько раз и как часто.
NAS
Тут и происходит вся магия.
У Synology есть отличный инструмент, называется он Cloud Sync, думаю по названию понятно что он делает.
Он может синхронизировать многие облачные системы между собой, если точнее то синхронизировать файлы с сервера NAS c другими облаками. Обзор данной программы думаю есть в сети. не буду вдаваться в подробности. Лучше опишу как я ее использую.
На сервере у меня есть папка диск под названием Dropbox, она является копией моего Dropbox аккаунта, синхронизацией всего этого занимается Cloud Sync. Если в Dropbox-е что-то произошло с файлами, это произойдет и на сервере, не важно, едитудалениесоздание. В общем классическая синхронизация.
Яндекс диск
Далее, все эти файлы я кидаю на свой Яндекс диск, его я использую как самодельный бэкап диск, то есть файлы туда кидаю но ничего не удаляю оттуда, получается такая свалка файлов, но пару раз выручало.
Google Drive
Туда я отправляю только папку «Photos», так же в режиме синхронизации, делаю я это только для удобного просмотра фото в гугл фото и с возможностью удаления оттуда фото и они удаляются везде (кроме яндекс диска само собой). Про фото я напишу ниже, там вообще можно отдельную статью написать.
HyperBackup
Но все это не очень надежно, если случайно удалил файл то он везде удалится и можно считать его потерянным. Можно конечно восстановить из яндекс диска, но во первых бэкап в одном месте не очень надежен сам по себе, да и сам яндекс диск, не тот сервис в котором можно быть уверенным на 100%, хоть с ним еще ни разу не было проблем.
Поэтому я всегда старался хранить файлы еще где-то, уже с нормальной системой бэкапов.
У Synology так же есть инструмент для этого, называется он HyperBackup, он делает бэкап файлов либо на другие серверы Synology, либо на какие-то клауд решения от сторонних производителей.
Также он умеет делать бэкап на внешние диски, подключенные к NAS-y, так я и делал до недавних пор. Но это тоже не надежно, к примеру если пожар то конец и серверу и HDD.
Synology C2
Тут мы плавно подходим к другому сервису, уже от самой Synology. У нее есть свои облака для хранения бэкапов. Заточен он именно под HyperBackup, он делает туда бэкап каждый день, но это уже продуманный backup, там есть версии файлов, таймлайн и даже клиенты для windows и mac os.
На этом, с хранением файлов все, надеюсь мои файлы в сохранности.
Теперь перейдем к сортингу файлов.
Обычные файлы, книги, сканы документов и другие маловажные файлы я как и все сортирую по папкам руками. Обычно их не много и открываю я их редко.
Самое сложное с сортировкой фото и видео, у меня их много.
Фото я делаю от нескольких десятков до несколько сотен в месяц. Снимаю на зеркалку, на дрон и иногда на телефоне. Фото бывают личные и для стоков. Также иногда снимаю домашнее видео (не то что вы подумали, просто семейные видео, чаще с дочкой). Его тоже надо как-то хранить и сортировать, чтоб не была каша.
У меня есть папка в том же Dropbox-е, под названием Sort Images, там есть подпапки куда попадают все фото и видео, оттуда они берутся и сортируются куда надо.
Сортировка происходит на сервере NAS, там работают bash скрипты которые автоматом запускаются раз в сутки и делают свою работу. За их запуск также отвечает NAS, там есть планировщик задач который и отвечает за запуск всех скриптов и других задач. Можно настроить как часто и когда будут запускаться задачи, крон с интерфейсом если проще.
Для каждой папки есть свой скрипт. Теперь подробнее о папках:
Drone — тут попадают фото с дрона которые я снял в личных целях. Сначала я обрабатываю все фото в lightroom, потом делаю экспорт JPG в эту папку. оттуда они попадают в другую папку Dropbox, «Photo».
Там есть папка «Drone» и там уже они сортируются по годам и месяцам. Скрипты сами создают необходимые папки и переименовывают сами фото по моему шаблону, обычно это дата и время снятия фото, так же добавляю в конце рандомную цифру, чтоб не получались файлы с одним и тем же именем. Не помню почему для этих целей не подходило выставление секунд в имени файла.
Дерево имеет такой вид: Photo/Drone/2019/05 — May/01 — May — 2019_19.25.53_37.jpg
Drone Video — я пока что не снимаю видео дроном, там нужно многое учить, нет для этого сейчас времени, но папку уже создал.
Images Operations — тут внутри две папки, когда файлы там попадаются то они просто либо сжимаются по максимальной стороне до 2000px для публикации в интернете либо делается флип картинок, это уже мне не нужно, но пока что папку не удалил.
Panoramas — тут попадают как не сложно догадаться панорамы, их я храню отдельно так как это специфический вид фото, обычно делаю их дроном. Я делаю и обычные панорамы но так же делаю 360 панорамы и иногда сферы, такой вид панорам как маленькие планеты, делаю так же дроном. Из этой папки все фото попадают также в Photo/Panoramas/2019/01 — May — 2019_19.25.53_37.jpg. Тут я не делаю сортировку по месяцам так как панорам не так уж много.
Personal Photo — Тут попадают фото которые делаю на зеркалку, обычно это семейные фото или же путешествия, в общем фото которые делаются на память и для себя. Так же сырые фото обрабатываю а lightroom-е и потом экспортирую сюда.
Отсюда они попадают сюда: Photo/2019/05 — May/01 — May — 2019_19.25.53_37.jpg
Если же я снял какой-то торжество или еще что-то что лучше бы хранить отдельно то в папке 2019 создаю папку с названием торжества и копирую туда фото руками.
RAW — тут попадают исходники фото. я всегда снимаю в RAW, все фото храню в JPG но иногда хочется хранить также и RAW файлы, иногда хочется по другому обработать какой-то кадр. Обычно это природа и туда попадают только лучшие кадры, не все подряд.
Stock Photo — сюда я скидываю фото для стоков, которые делаю либо на зеркалку, либо на дрон. Сортировка такая же как и на других фото, просто в свою отдельную папку.
В корневой директории Dropbox, есть папка Camera Uploads, это дефолтная папка в которую мобильное приложение Dropbox скидывает туда все фото и видео. Все фото жены с телефона скидываются таким образом. Я так же все свои фото и видео с телефона скидываю сюда и отсюда уже сортирую в отдельную папку. Но я делаю это иным способом, более удобным для меня. Есть такая программа для Android, FolderSync, она позволяет брать все фото с мобилы, закачать их на Dropbox и потом удалить их с телефона. Там множество настроек, рекомендую. В эту папку попадают и видео с телефона, они также сортируются как и все фото, по годам и месяцам.
Все скрипты я собрал сам из всяких инструкций в интернете, готовых решений не нашел. Я вообще ничего не знаю про баш скрипты, возможно есть какие-то ошибки или какие-то вещи можно было бы сделать лучше, но самое главное — для меня, они справляются со своей работой и делают то что мне надо.
Скрипты залил на гитхаб:
Раньше для сортировки фото, видео я использовал Hazel под mac os, там само собой все легче, там все задачи создаются визуально, не надо писать код, но тут есть два минусу. Во первых нужно держать все папки на компьютере, чтоб все хорошо работало и второе, если вдруг пересяду на windows или linux то там нет таких программ. Пробовал искать альтернативу но все они были ни о чем. А решение со скриптами на сервере более универсальное решение.
Все скрипты настроены чтобы выполнялись раз в сутки, обычно ночью. Но если нет времени ждать и нужно как-то выполнить нужный скрипт сейчас, есть два решения, подключиться по SSH к серверу и выполнить нужный скрипт или же зайти в админку и так же мануально запустить нужный скрипт. Все это мне кажется не удобным, поэтому я нашел третье решение. Есть программа под Android, она может отправлять команды ssh. Я создал несколько команд, для каждой есть своя кнопка и теперь если мне нужно отсортировать например фото которые сделал с дрона то просто нажимаю одну кнопку и скрипт срабатывает. Программа называется SSHing, есть и другие похожие, но для меня эта самая удобная.
Так же у меня несколько своих сайтов, они больше для галочки, туда практически никто не заходит но все же backup делать не помешает. Сайты я держу на DigitalOcean, там установил панель aaPanel. Там есть возможность сделать резервные копии всех файлов и всех баз данных, но на том же диске.
Хранить бэкап на том же диске не дело, поэтому я так же через bash скрипт стучусь туда и копирую все на свой сервер, архивируя все в одном архиве с датой в названии.
Надеюсь хоть кому-то помогут способы, что я использую и с какими поделился.
Как видно из статьи, я люблю автоматизацию и стараюсь автоматизировать что все что только можно, я многие вещи не описывал с точки зрения автоматизации, так как это уже другие темы и другие статьи.
Источник: habr.com