środa, 25 stycznia 2012

logrotate - rotacja logów na ubuntu

logrotate służy do rotowania określonej liczby plików log.

logrotate powinien być domyślnie zainstalowany w każdym systemie Ubuntu.

Dla każdej aplikacji, której logami chcemy zarządzać, dodajemy plik konfiguracyjny:
#/etc/logrotate.d/our_app

Zawartość pliku:
/home/apps/our_app/current/log/production.log* {
daily
rotate 7
compress
missingok
}

daily - codziennie
rotate 7 - zostaw ostatnie siedem plików
compress - spakuj gzip
missingok - nie krzycz, gdy nie ma żadnych logów

logrotate wykonuje ten skrypt każdego dnia, datę ostatniego wykonania, można sprawdzić w pliku:
cat /var/lib/logrotate/status

Za pomocą następującej komendy można ręcznie uruchomić określoną konfigurację logrotate:
sudo logrotate -f /etc/logrotate.d/our_app

piątek, 20 stycznia 2012

Capistrano - czyszczenie katalogu releases

Po raz kolejny szukam w Google składni polecenia capistrano aby wyczyścić stare 'releases', aby więcej tego nie szukać oto składnia:

cap deploy:cleanup -s keep_releases=2

keep_releases=2 oznacza, że pozostaną nam dwa ostanie 'releases'.

wtorek, 3 stycznia 2012

ssh bez hasła

Piszę to głównie po to aby nie musieć szukać ponownie tych informacji za miesiąc lub dwa, gdy będę musiał konfigurować rsync lub coś podobnego...

Mamy dwa serwery:
A - serwer produkcyjny
B - serwer backup

Zakładam, że na serwerze B posiadamy już użytkownika (np. backup) i folder .ssh w jego katalogu domowym. Zakładam także, że posiadamy już plik .ssh/authorized_keys (lub .ssh/authorized_keys2)
Jeśli nie, to:
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Na serwerze A, z którego będziemy robili upload za pomocą rsync generujemy klucz prywatny i publiczny, np:

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Kopiujemy klucz publiczny z maszyny A na B:
scp ~/.ssh/id_rsa.pub server_b_username@server_b_domain:~/id_rsa.pub

Następnie logujemy się poprzez ssh na serwer B.
cd .ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub

Następnie wylogowujemy się z serwera B, logujemy się na serwer A i z niego powinniśmy być w stanie zalogować się na serwer B bez podawania hasła.

Instalacja gem'ów bez dokumentacji na Ubuntu

Należy utworzyć plik ~/.gemrc i dodać do niego następującą linię:

gem: --no-ri --no-rdoc

Wylogować się, zalogować ponownie i gem install [gem_name] nie powinien już instalować dokumentacji dla wybranego gem'a.