Pokazywanie postów oznaczonych etykietą backup. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą backup. Pokaż wszystkie posty

piątek, 17 czerwca 2011

whenever - zarządzaj crontab za pomocą Ruby

Zgodnie z obietnicą opiszę jak skonfigurować crontab za pomocą gem'a whenever.

W poprzednim poście mowa była jak utworzyć backup bazy MySql za pomocą gem'a backup i wysłać go do Amazon S3.

Przydałoby się zautomatyzować ten proces aby wykonywał się przynajmniej raz dziennie.

Oto jak można to zrobić za pomocą gem'a whenever.

Pominę proces instalacji, gdyż jest to bardzo dobrze opisane na stronie projektu.

Po komendzie wheneverize . został utworzony plik config/schedule.rb, w tym pliku należy wpisać własne zadania, które chcemy wykonać na naszym serwerze.

Moim celem było utworzenie taska, który będzie wykonywał się codziennie i który będzie wywoływał komendę:


Zgodnie z dokumentacją napisałem coś takiego:


Jeśli używamy domyślnego pliku konfiguracyjnego dla gem backup, to możemy w komendzie pominąć paramter -c oraz ścieżkę do pliku, można jednak wskazać konkretny plik, gdzie mamy zdefiniowany nasz Backup::Model test_backup.

Po wrzuceniu tego na serwer okazało się, że cron nie rozumie polecenia backup. Trzeba było odpowiednio ustawić zmienną PATH, poniżej jeszcze raz plik schedule.rb wraz z dodatkowymi ustawieniami:



Cron po każdym uruchomieniu taska wyśle podsumowanie na adres email, który został ustawiony w zmiennej :MAILTO.

To wszystko. Cron działa, backup się wykonuje. Bardzo podoba mi się, to, że taski cron są zdefiniowane wraz z projektem Rails. Jeśli używa się capistrano do deployment'u to warto dodać do pliku deploy.rb task, który będzie aktualizował crontab po każdym wypuszczeniu nowej wersji aplikacji:


sobota, 12 marca 2011

Amazon S3 i backup

Dzięki Ruby5 ponownie znalazłem fajne narzędzie, tym razem do robienia backup'ów.

Gem backup ma za zadanie robić backup'y (bazy danych, plików) i wysyłać je tam gdzie sobie tego zażyczymy (ftp, Amazon S3, itd).

Spodobała mi się opcja wysyłania backup'u bazy MySql na Amazon S3.
Nigdy wcześniej nie korzystałem z Amazon S3, można tam założyć konto, które będzie darmowe do momentu gdy miesięcznie nie przekroczy się następujących parametrów:
  • 5 GB of Amazon S3 storage
  • 20 000 Get Requests
  • 2 000 Put Requests
Sądzę, że na początek to w zupełności wystarczy.
Więcej info odnośnie darmowego serwisu Amazon: AWS free

OK, mamy konto S3, należałoby utworzyć jakiś bucket na S3 - należy zalogować się do
https://console.aws.amazon.com - nazwę naszego bucket'a ustawiamy na 'test'.

Potrzebujemy jeszcze access_key_id oraz secret_access_key, są do pobrania z:
https://aws-portal.amazon.com

Teraz czas na gema backup, instalacja:



Generujemy domyślny plik konfiguracyjny:



Należy dostosować plik konfiguracyjny (domyślnie w ~/Backup/config.rb) do naszych potrzeb: nazwa bazy, użytkownika i hasło oraz nazwa regionu Amazon, ja wybrałem Europę - stąd wartość dla s3.region = 'eu-west-1'



Teraz możemy wykonać backup bazy:



...i mamy zrobiony backup!

W kolejnym poście postaram się opisać automatyzację tego rozwiązania za pomocą gema whenever.