Давно хотел организовать дублирование на S3 ключевых личных файлов, и вот наконец собрался. Готового решения с толковой статьей на русском языке навскидку найти не удалось, так что пришлось вспоминать английский, благо — все оказалось не просто, а очень просто.
Этот короткий материал ориентирован на «самых-самых маленьких» пользователей Linux и служит целью показать, насколько легко и просто организовать резервное копирование на сервера Amazon S3.
Подразумевается, что у вас уже есть рабочий аккаунт на S3 (если нет — вам сюда или сюда) и минимальные знания консоли и любого текстового редактора.
От себя кратко скажу, что Amazon S3 — это неограниченное по объему хранилище для ваших данных в Интернете. Сервис платный, но при небольших объемах (порядка нескольких сот мегабайт) обходится в считанные рубли (максимум — десятки рублей) в месяц.
Также считаем, что свежие бэкапы вы делаете (а старые, соответственно, удаляется), и хранятся они в /home/backup.
Наша задача: каждую ночь (день, вечер), после того, как все новые бэкапы будут сделаны, копировать их на S3, а также удалять оттуда старые — те, которых в /home/backup больше нет (мы же чистим совсем старые бэкапы, верно?).
После недолгих поисков в Интернете я наткнулся за замечательную программу s3sync на Ruby, которая оказалась в состоянии сделать все, что требуется.
Первым делом устанавливаем Ruby:
Fedora:
Debian:
Centos:
(Спасибо mikhailov)
Далее скачиваем и распаковываем s3sync:
Создаем bash скрипт, который и будем запускать по крону:
Результатом работы скрипта будет папка my-backup в указанной корзине на S3 с вашими резервными копиями.
Первыми двумя параметрами мы задает данные для авторизации на S3 — можно их также указать в XML файле, но поместить их в переменные окружения — проще.
Вот еще несколько полезных ключей:
Добавляем наш скрипт в крон (скажем, пусть работает каждый день в 7 утра)
Для очистки совести можно протестировать скрипт ручками и лишний раз проверить права доступа к используемой корзине (папке) на S3 — и можно спать со спокойной душой — ваши данные в надежном месте.
Спасибо всем прочитавшим, любые замечания и поправки приветствуются!
Этот короткий материал ориентирован на «самых-самых маленьких» пользователей Linux и служит целью показать, насколько легко и просто организовать резервное копирование на сервера Amazon S3.
Подразумевается, что у вас уже есть рабочий аккаунт на S3 (если нет — вам сюда или сюда) и минимальные знания консоли и любого текстового редактора.
От себя кратко скажу, что Amazon S3 — это неограниченное по объему хранилище для ваших данных в Интернете. Сервис платный, но при небольших объемах (порядка нескольких сот мегабайт) обходится в считанные рубли (максимум — десятки рублей) в месяц.
Также считаем, что свежие бэкапы вы делаете (а старые, соответственно, удаляется), и хранятся они в /home/backup.
Наша задача: каждую ночь (день, вечер), после того, как все новые бэкапы будут сделаны, копировать их на S3, а также удалять оттуда старые — те, которых в /home/backup больше нет (мы же чистим совсем старые бэкапы, верно?).
После недолгих поисков в Интернете я наткнулся за замечательную программу s3sync на Ruby, которая оказалась в состоянии сделать все, что требуется.
Первым делом устанавливаем Ruby:
Fedora:
yum install ruby
Debian:
sudo apt-get install ruby-full
Centos:
yum install -y ruby
(Спасибо mikhailov)
Далее скачиваем и распаковываем s3sync:
wget s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
tar vxzf s3sync.tar.gz
Создаем bash скрипт, который и будем запускать по крону:
vim go-s3sync-backup.sh
#/bin/sh
export AWS_ACCESS_KEY_ID=[ваш AWS_ACCESS_KEY_ID]
export AWS_SECRET_ACCESS_KEY=[ваш AWS_SECRET_ACCESS_KEY]
/home/user/s3sync/s3sync.rb --delete -r /home/backup/ [имя корзины на S3]:my-backup
chmod +x go-s3sync-backup.sh
Результатом работы скрипта будет папка my-backup в указанной корзине на S3 с вашими резервными копиями.
Первыми двумя параметрами мы задает данные для авторизации на S3 — можно их также указать в XML файле, но поместить их в переменные окружения — проще.
- --delete служит для удаления с S3 тех файлов, которые отсутствуют в локальной папке
- -r включает рекурсивный обход папок
Вот еще несколько полезных ключей:
- --progress позволяет увидеть ход выполнения операции
- -n позволяет увидеть, что планирует делать скрипт, не выполняя при этом самих действий (эдакий отладочный режим)
Добавляем наш скрипт в крон (скажем, пусть работает каждый день в 7 утра)
0 7 * * * /home/user/go-s3sync-backup.sh
Для очистки совести можно протестировать скрипт ручками и лишний раз проверить права доступа к используемой корзине (папке) на S3 — и можно спать со спокойной душой — ваши данные в надежном месте.
Спасибо всем прочитавшим, любые замечания и поправки приветствуются!