Google Drive — бэкап файлов на компьютере

В Google Drive появилась полезная функция бэкапа отдельных папок на компьютере. Стандартное приложение Drive раньше синхронизировало файлы и документы только расположенные внутри своей папки. Я раньше как-то искал варианты, как синхронизировать другие папки, напрашивалось решение использовать символические ссылки, но в Windows это не работало. Теперь это отдельная функциональность встроенная и в Google Drive и в приложение на десктопе. Причём, новое приложение заменяет и Google Photos, которое умело бэкапить только фото и видео.

Сейчас я использую Crashplan для автоматического бэкапа папок на компьютере и рабочем ноутбуке. Раньше писал о нём обзор: https://www.kushnerov.com/2011/04/24/crashplan/, получается использую его уже 6 лет. Приложение неплохое, но у него есть ряд недостатков.

  • Первый — не очень высокая скорость бэкапа, сейчас это уже не так актуально как раньше, но раньше после 100 гигабайт, он начинал работать ну очень медленно. Это явно, встроенное ограничение, при задекларированном неограниченном пространстве храниения, ты можешь закачать сколько хочешь, но каждый последующий гигабайт будет сохраняться медленее и медленнее.
  • Второй — похоже, что хранится только одна копия моих данных, что не очень надёжно.
  • Третий — было пару раз, когда приложение просто перестаёт загружаться при загрузке компьютера. То есть неожиданно бэкап перестаёт работать и обнаружить это удаётся через несколько дней по письму от системы, что бэкап не идёт уже несколько дней.

Подумаем о плюсах бэкапа в Google Drive

  • Данные точно хранятся в 3-копиях, как и всё в Google, риск потери крайне низкий
  • Закачанные фото и видео сразу доступны в Google Photos — откуда их удобно смотреть с телефона

Минусы:

  • Нет дополнительной защиты — пароля, который дополнительно шифрует данные, чтобы их нельзя было просто скачать при получении доступа к аккаунту
  • При поиске в Google Drive, выдаёт результаты не только по диску, но и по сохранённым файлам с компьютеров

Бэкапить данные в Google Drive пока выглядит надёжней и удобней, только стоит ещё более серьёзно озаботиться проблемой защиты доступа к аккаунту, надеюсь, что двухфакторная авторизация это решает. Решил попробовать использовать месяц оба бэкапа для точного сравнения.

Также нужно понимать, что фактически несмотря на бесплатность Google, новая фича платная — так как по умолчанию в вашем аккаунте Google всего 15 гигабайт места (30, если он корпоративный). Это включает в себя и почту и фотографии и файлы на Google Drive. Так как фотографии и видео обычного размера и документы формата Google не занимают место, фактически это место используется под вложения для почты. 15 гигабайт места это немного, можно забэкапить папки только с основными документами, например, у меня сейчас около 350 гигайбайт ресурсов, которые нужно сохранять, в основном это фотографии. Но место можно купить, 100 Гигайбайт дополнительного места стоят 1,99 $ в месяц, а 1 терабайт 9,99 $. За Crashplan сейчас я плачу 13,99 $ в месяц, он позволяет бэкапить несколько устройств (есть план, где для одного устройства за 5,99 $). То есть 1 терабайт мне точно хватит и будет это дешевле чем Crashplan.

1 Тб в Google Drive за 10$

Google решил депинговать своим удобным сервисом Drive и сильно снизил цены. Теперь 1 терабайт места стоит всего 10$ (раньше терабайт стоил 50$).


За такие деньги это достаточно интересное предложение. Я сейчас использую Google Drive для переноса различных мелких файлов (и документов) между компьютерами, а для основного бэкапа использую Crashplan (у меня там 160 Гб, в основном мои фотографии и видео). Crashplan стоит от 6$ в месяц, но там синхронизация идёт только с одним компьютером, чтобы настроить два, нужно перейти на аккаунт за 14$ в месяц. Также мне не нравится, что у Crashplan’а не очень быстрая скорость бэкапа файлов на удалённый сервер.

Теперь подумываю перетянуть основной бэкап на Google Drive — но основная проблема, которую стоит решить в том, что все файлы лежат в папке на диске C: в аккаунте пользователя (туда 160 Гб фотографий не скопируешь).  Решением могло быть использование символьных ссылок (симлинков), но на данный момент Google Drive не поддерживает симлинки.

В облако!

Сейчас днём работаю с ноутбука, вечером и на выходных часто за домашним компьютером, стал вопрос синхронизации всех данных, создаваемых и изменяемых на разных компьютерах. Раньше, когда использовал только домашний компьютер, такой проблемы конечно не было. Конечно можно таскать файлы на флешке, но это просто не удобно и приводит к неконтролируемому процессу накапливания различных версий и потери части данных, т.к. не всегда вспоминаешь, что и куда нужно переписать.

В современном мире быстрого интернета и облачных сервисов — решение простое, использовать различные облачные сервисы. Вторая задача — бэкап. По возможности, максимально отвязаться «от железа», чтобы все файлы были доступны в отдельном месте и в случае смены или поломки ноутбука (компьютера), можно было быстро восстановить данные и продолжить работу.

Что я использую:

Gmail — почта.
Почтовые сервисы наверное все уже используют, тут всё понятно. И надёжно и просто. Gmail очень быстрая и удобная почта.

Crashplan — тяжелый «медленный» бэкап. Crashplan бэкапит медленно, но в нём можно сохранить множество файлов и целые папки, чтобы потом восстановить профиль на новом компьютере. У меня сейчас в нём бэкапиться около 130 Гб . Правда пока использую только на основном компьютере.

Google Drive — быстрый бэкап. Бесплатно Google Drive позволяет забэкапить 5 гигабайт, что удобно в виде небольшой облачной флешки. Сам сервис ещё не идеален, например он не умеет определять изменённые блоки в файле, и в случае изменения большого файла закачивает его целиком, но для меня удобно, что он объединён с Google Docs и что работает в единой авторизации Google.

Google Documents — документы. Я уже полгода перестал пользоваться офисом, и все документы веду в Google Docs. Функциональности мне хватает, особенно очень удобно постоянное сохранение и возможность дать доступ к документу ещё кому-нибудь и править этот документ одновременно. Есть ряд глюков — но сервис постоянно развивается.

Google Keep — задачи. Недавно открывшийся сервис от Google использую для задач. Там удобно ставить задачи на день, неделю, месяц и потом отмечать галочками завершённые. Правда сервис ещё сыроват, недавно он не сохранил все изменённые данные за два часа.

Git — работа с проектами. Кроме возможности одновременно нескольким разработчикам-программистам работать над проектом, Git распределённая система и позволяет удобно бэкапить и восстанавливать нужные файлы.

Google Chrome — браузер. Сейчас браузер умеет сохранять все закладки и переносить их между компьютерами, если войти в него с помощью Google аккаунта.

Получается что я преданный пользователь Google. Удобно на самом деле. Самое интересное, что при использовании различных сервисов всё меньше и меньше зависишь от железа и операционной системы. По сути, браузер становиться операционной системой.

CrashPlan

Писал недавно о Mozy.com, известном сервисе онлайн-бэкапа за 5 долларов в месяц. После того как оплатил, и попользовался месяц, Mozy внезапно поднял цены (5.99$ за 50 гигайбайт, 9.99$ за 125 гигайбайт + 2$ за каждые 20$ в месяц). Последней каплей стало то, что приложение Mozy стало работать с страшными глюками (перестало бэкапить файлы и стало зависать при переустановке).

Интересный бизнес, сначала много лет пиариться о том, что у них неограниченно место, и можно бэкапить сколько угодно, а потом настолько сильно ограничить дисковое пространство. 50 гигайбайт это реально мало, у меня например одних фотографий почти на 50 гигайбайт, хотя я удаляю почти все Raw’ы и пережимаю все видеофайлы.

Понятно, что неограниченное место, это маркетинговая хитрость, примерно как неограниченный трафик у провайдеров. Если приблизиться к какому-то скрытому лимиту, то включаются ограничения скорости и т.д. Формально ограничений нет, но пользоваться сервисом уже невозможно. Применительно к таким сервисам, как Mozy, более справедливым было бы ограничение в 200-300 гигабайт, особенно если учесть текущие цены на винчестеры.

Почитал отзывы разгневанных клиентов Mozy и стал искать другой сервис из самых популярных за такую же цену (5$ в месяц). Сначала я попробовал Carbonite. Неплохая альтернатива, но из минусов оплата сразу за год, и то, что в бэкап по умолчанию не добавляются аудио и видео файлы. Понятно, что сделано специально, чтобы особо «умные» пользователи не добавляли в бэкап свои аудио- и видео-коллекции, но для меня неудобно, т.к. нужно специально добавлять каждый файл домашнего видео.

Затем попробовал CrashPlan, и решил остаться c ним. CrashPlan даёт возможность бесплатно пользоваться его услугами целый месяц, что сделало выбор в его пользу, когда он бодренько за неделю забэкапил мои 50 гигабайт (т.е. на этом уровне никаких ограничений по скорости нет). Из преимуществ, также стоит отметить шифрование архивов (чтобы скачать архивы, кроме логина и пароля нужен дополнительно специальный ключ). Скачивать бэкапы можно как из программы, так и из аккаунта на сайте. Субъективно, программа работает быстрее, чем Mozy.

У подобных сервисов, самое главное надёжность, посмотрим, что будет дальше.

Бэкап на Mozy.com

О важности бэкапов и как это я организую на сервере, я уже писал. Пару месяцев назад серьёзно задумался о бэкапе дома. Как говорят жизнь делится на две части: до сгоревшего винчестера, и после. Т.к. я уже терял свои веники два раза, то все важные данные я сохраняю на второй винчестер в компьютере и раз в пару недель всё копирую на внешний винчестер. Всё это замечательно защищает данные от того, что может полететь основной винчестер, или два одновременно (например, такое случается, если сгорает блок питания). Но случаи бывают разные и неправильно хранить все бэкапы в одной квартире — тут нарушается основной принцип бэкапа, чем географически дальше находятся копии, тем лучше.

Сохранять данные на DVD-болванки уже неудобно, т.к. на диск влезает чуть меньше 5 Гб, что мало, а коллекции быстро растут, у меня например одних фотографий уже 55 гигайбайт. К тому же нужно ждать пока данные насобираются на новый диск (можно потерять, то что не успел записать), и нужно диски куда то отвозить, например к родственникам (что долго), чтобы не хранить все бэкапы в одном месте.

Поэтому я обратил внимание на онлайн сервисы для бэкапа. Благодаря развитию рынка интернет услуг в последние два года у нас в стране, сильно выросли скорости и трафик на тарифах интернет-провайдеров, стало возможно закачивать/скачивать большие объёмы данных. У меня, например, сейчас на тарифе 100 гигабайт трафика, что более чем достаточно, чтобы в течение месяца забэкапить все важные данные.

Сервисов для бэкапа существует великое множество, все они примерно дают схожую функциональность, но отличаются ценами, условиями и удобством. Попробовал несколько крупных сервисов и остановился на Mozy.com. Основная проблема во многих сервисах, что они держат пользователей за идиотов не дают выбрать, какие папки бэкапить, а сохраняют всё подряд. Возможно это удобно, если есть 300-гигабитный интернет, чтобы восстановить потом все данные за сутки, но когда террабайт места на дисках занимают фильмы, сериалы, дистрибутивы программ и игр, это совершенно не удобно 🙂


Статус отправки файлов на сервер

Mozy позволяет бесплатно бэкапить 2 гигабайта информации, либо неограниченный объём за 5$ в месяц и обладает хорошей функциональностью. Понравилась удобная клиентская часть, позволяет выбрать в какие папки будут забэкаплены. Можно настроить автоматический бэкап в определённое время суток, ограничение полосы канала.


Интерфейс клиентской части

Данные  можно восстановить, установив клиентскую часть, либо прямо из своего веб-аккаунта на Mozy.com, что крайне удобно — файлы архивируются и присылается ссылка для скачивания на архив. Восстановить можно отдельно любую папку (как ни странно, не во всех сервисах такое возможно). Что важно, можно восстановить не только файлы из последнего бэкапа, но и файлы из бэкапа за любое число.

Transcend StoreJet 25M3

Вчера приобрёл портативный винчестер Transcend StoreJet 25M3 640 Gb, в первую очередь, чтобы решить проблему с бэкапом важных файлов с компьютера. У меня два винчестера и я сохраняю всё важное с одного на другой, но далеко не гипотетична ситуация, когда могут сгореть сразу два, из-за проблем связанных, например, с блоком питания. Ну и «огромная флешка» никогда не помешает.

Цены за последние года полтора на подобные устройства очень сильно снизились, давно хотел купить, но раньше цены кусались (были больше двух сотен), а сейчас потратил чуть больше $100 . Цены на портативные винчестеры с меньшим объёмом и USB 2.0 ещё ниже.

Обещают определённую ударопрочность (резиновый корпус и прокладки амортизируют удары до определённой степени), я бы конечно не рискнул проверять, но надеюсь, можно его спокойно таскать с собой, например, в сумке.

Специально взял версию с USB 3.0, она дороже на 20$ аналогичной модели с USB 2.0, но ускорение передачи файлов в 3 раза в перспективе, как мне кажется, того стоит. Через несколько месяцев планирую апгрейд свого компа, обязательно возьму плату с поддержкой USB 3.0. Из минусов, третья версия USB совместима со второй только на уровне разьёма type A (прямоугольный, тот который втыкается в комьютер), а mini и micro разьёмы новые, т.е. придётся с винчестером всегда таскать ещё и кабель.

У Transcend есть фирменная программка для бэкапа, можно добавить определённые папки, а потом при нажатии одной кнопки происходит синхронизация. Всё это сначала показалось удобным, но после того как сделал повторную синхронизацию, оказалось, что программка определяет были ли изменения в файлах не по дате/размеру, а читает файл полностью (наверное для подсчёта хэша), и даже минимальное обновление занимает море времени (проще файлы скопировать вручную заново). Сколько пересмотрел программ для бэкапа (в том числе онлайн), пока так не нашёл для себя по-настоящему удобной.

Бэкапиться, бэкапиться и ещё раз бэкапиться..

Вчера приезжаю с отдыха, а один из проектов, над которым работал больше месяца сгорел. Сгорел во всех смыслах, большой пожар неделю назад был в украинском дата-центре в Одессе (hosting.ua), где сервер временно размещался. К счастью бэкап проекта был, его быстро восстановили, хотя потеряли часть критически не важных данных.

Суть в том, что потеря данных может быть в любом, даже в самом навороченном дата-центре. Нельзя полагаться только на RAID, дизель-генераторы и автоматизированные системы пожаротушения. Сервер могут арестовать (по ошибке или просто за компанию с другими), может пройти короткое замыкание или начаться война, попасть метеорит, застрять таракан в лопастях вентилятора или прогрызть проводку мышь, да на него кофе в конце концов могут пролить. Где-то читал, что одна комания бэкапила данные в всемирном торговом центре с одного небоскрёба на сервер в другом небоскрёбе. А потом наступило 9 сентября 2001 года.

В отдельности вероятность этих событий очень маленькая, но вместе, за годы, умноженная на человеческое разгильдяйство — какое-либо чрезвычайное событие, которое приведёт к потере целого сервера, может вполне произойти и нужно быть к этому готовым. Панацея одна — делать бэкапы, причём важно чтобы они хранились где-нибудь подальше (дома или в другом территориально расположенном дата-центре)

Самый простой способ, особенно в случае не очень часто меняющихся и важных данных, просто сохранять файлы и дампы на свой рабочий диск раз в пару недель. Ситуация осложняется, если сайтов несколько, или данные достаточно важные.

Я около года назад сделал небольшой PHP скрипт, который использую для бэкапа своих проектов. Файлик лежит в корне веб-сайта, делает бэкап базы и файлов и заливает данные на удалённый сервер. Для каждого нового сайта я заливаю этот скрипт в корень директории сайта и ставлю его выполнение раз в пару дней в cron. Раз в месяц я сливаю архивы с FTP к себе на домашний компьютер.

Я приведу команды для подобного бэкапа в linux. Для вызова консольных команд из PHP можно использовать команды exec или system. Можно на основе этих команд сделать bash скрипт.


Бэкап файлов

Сохраняем сайт в tar архив:
tar -cf {путь к получаемому tar архиву} {полный путь к директории сайта}

например: tar -cf site.tar /var/www/site.com/htdocs

Сжимаем полученный архив в tar.gz (т.к. tar не сжимает, а только пакует файлы в один):
gzip -c {путь к tar архиву} > {путь к получаемому tar.gz архиву}

например:
gzip -c /var/www/site.com/htdocs/site.tar > /var/www/site.com/htdocs/site.tar.gz


Бэкап MySQL базы данных

—quote-names —add-drop-table —user=’.$DBLogin.’ —password=’.$DBPassword.’ —host=’.$hostname;
$str = exec(‘mysqldump ‘.$params.’ ‘.$DBBase.’ > ‘.$path.’/tmp.sql

Сохраняем базу в SQL дамп:
mysqldump —quote-names —add-drop-table —user={юзер БД} —password={пароль к БД} —host={хост, как правило localhost} {название БД}>{путь к сохраняемому SQL дампу}

например: mysqldump —quote-names —add-drop-table —user=root —password=12345 —host=localhost site_database>/var/www/site.com/htdocs/dump.sql

Аналогично сжимаем дамп базы данных в gz архив.


Восстановление данных из архивов

Распаковка файлов из tar.gz в текущую директорию:
tar zxvf {tar.gz архив}

например:
tar zxvf archive.tar.gz

Восстановление базы из sql дампа:
mysql —host={хост} —user={юзер БД} —password={пароль к БД} {название БД}<{SQL дамп}

например: mysql —host=localhost —user=root —password=12345 site_database<dump.sql

Если дамп сжат в gz, то нужно его перед тем как скормить утилите mysql предварительно разархивировать:
gzip -d {название gz файла}


Заливаем на FTP средствами PHP:

Если бэкапить скриптом, то полученные архивы неплохо бы сразу залить на удалённый FTP. Простейший код для заливки файла по FTP в PHP:

$conn_id = ftp_connect({FTP сервер:порт});
$login_result = ftp_login($conn_id, {FTP логин}, {FTP пароль});
if ($conn_id && $login_result) $upload = ftp_put($conn_id, {путь к заливаемому файлу}, {путь сохраняемого файла по FTP}, FTP_BINARY);
ftp_close($conn_id);


Шифруем архивы средствами GPG:

Чтобы можно было использовать любой FTP хостинг, а также без опасений заливать и хранить бэкапы где угодно, неплохо бы их шифровать. Я для шифрования использую GPG — аналог симметричного шифрования PGP.

Для начала создадим на сервере приватный и публичный ключ. Для шифрования нам понадобиться только публичный ключ, а для расшифрования нужен секретный ключ.

Для создания ключей выполняем: gpg —gen-key

  • Тип ключа (первый вопрос) выбираем по умолчанию — 1
  • Выбор размера ключа — по умолчанию 1024 (или можно 2048 байта)
  • Третий вопрос, время действия ключа выбираем 0 (никогда не истекает)
  • Четвёртый вопрос — указание личных данных (имя и мэйл). Главное имя — название ключа. У меня это backup_key.
  • В конце нужно заполнить пароль. Пароль нужен для получения доступа к секретному ключу. НЕ ЗАБЫВАЕМ ЗАПИСАТЬ!

САМОЕ ГЛАВНОЕ! Не забываем скачать и сохранить в надёжном месте у себя на компьютере секретный и публичный ключ, и пароль к секретному ключу,  а то расшифровать потом архивы самому не получиться =)

Чтобы потом импортировать ключи на новую систему, выполняем:
gpg —import {путь к asc файлу с данными ключа}

Шифрование архива средствами GPG:
gpg —recipient {название ключа} —output {получаемый шифрованный файл} —encrypt {файл для шифрования}

например: gpg —recipient backup_key —output dump.sql.gz.gpg —encrypt dump.sql.gz

Расшифрование GPG файла:

gpg -d {шифрованный файл} > {файл}

например: gpg -d dump.sql.gz.gpg > dump.sql.gz

Чтобы расшифровать архивы в Windows, можно скачать консольную GPG для Windows. Если делать шифрование средствами PHP, нужно в корневой папке апача создать папку .gnupg и положить туда публичный ключ, чтобы он мог шифровать архивы.