2011
04.05

Przy stawianiu nowego media/torrentboxa postanowiłem poeksperymentować i postawić większość systemu na btrfs (oprócz storagu dla torrentów bo COW ssie do tego i backupu z wiadomych przyczyn). Po jakimś czasie zauważyłem że z jakiegoś powodu collectd przy restarcie koszmarnie zamula serwer (load avg up, system mało responsywny itd.), pogrzebałem trochę w systemie i doszedłem do wniosku że to filesystem zamontowany na /var i procesy btrfsa. Chciałem porównać to do poprzedniego systemu (tam wszystko na reiserfs) więc po kawie myślenia rozpocząłem prosty test

(more…)

2011
03.04

Autor tego kawałka softu zrobił coś na co… w sumie ludzie piszący screena wpadli dawno temu ale nikt jakoś nie pomyślał wcześniej żeby przenieść to do emulatora terminali, mianowicie opcję dzielenia ekranu na “kafelki”,każdy działający jako term. Nie muszę już otwierać i resizowac paru termów żeby pooglądać sobie logi na paru serwerach na raz, wszystko w jednym oknie ;]. Ma też “zwykłe” taby + standardowy zestaw ustawień jak w reszcie term-emulatorów.

Ale kafelki to tylko czubek góry lodowej, w opcjach można znaleźć edytor layoutu, czyli układ tabów i kafelków jaki można załadować przy starcie terminala, łącznie z komendami jakie mają się wykonać w danym “subterminalu” czyli gdy np. często oglądamy określone logi można sobie zrobić do nich profil odpalający taila na określonych plikach automatycznie i ładować go na starcie. Albo chociażby odpalać pusty tab + tab z klientem poczty jak ktoś lubi:).

Parę przydatnych skrótów: (reszta w manie i/lub ustawieniach)

 

  • C-S-e – podziel okno pionowo
  • C-S-o – podziel okno poziomo
  • C-S-f – wyszukaj tekst w bieżącym buforze terminala
  • C-S-x – maksymalizacja aktualnego terminala (niestety nie ma sygnalizacji czy okno jest zmaksymalizowane)
  • C-tab, M-<up/down/left/right> – skakanie między termami

Polecam też zbindowanie tabów do alt + 0..9, wygodne ;]. Z innych ficzerów, po dodaniu okien do tej samej “grupy” tekst pisany w jednym pojawi się na wszystkich, taki “poor man’s distributed shell”.

Według mnie jest to “must have” dla użytkowników dużych i/lub paru monitorów, niesamowicie ułatwia życie. Na marginesie można znaleźć addony do FF (Fox  Splitter, Tile Tabs) robiące podobne rzeczy. Enjoy ;]

 

2011
02.12

sudo dd if=debian-6.0.0-amd64-netinst.iso of=/dev/sdc bs=1M

I tyle. Debian jest awsom ;]

2011
01.22

Parę dni temu wreszcie ( 6 tygodni!) Amazon dostarczył mi Kindle (WiFi only).  Samo urządzenie jest świetne, dobry kontrast sensowne UI, najlepszy czytnik ebooków na rynku itp. itd. jak to w każdej chyba recenzji mówią. Ale o jednej rzeczy rzadko kto wspomina, mianowicie po zakupie normalny rozkład dnia zmienia się z:

if (things_to_do()) {
    do_things();
}
else {
    do_fun_things();
}

na

if (things_to_do()) {
    read_books();
}
else {
    read_books();
}

Czytanie książek jest bardzo wygodne, sposób w jaki się je czyta jest też trochę (przynajmniej dla mnie) inny od czytania książek papierowych.

(more…)

2011
01.14

Gdy używamy haproxy (czy jakiegokolwiek innego proxy) pojawia się mały problem, mianowicie backend widzi wszystkie połączenia jako pochodzące z IP maszyny. Jest to problemem przy logowaniu oraz dla niektórych aplikacji. Większość serwerów WWW ma moduł który pozwala na “odzyskanie” IPka z nagłówka “X-Forwarded-For”. Oczywiście Twoje proxy musi umieć przekazywać taki nagłówek ale większość robi to domyślnie albo potrafi po włączeniu odpowiednich opcji (np. haproxy: option forwardfor except 127.0.0.1)

(more…)

2010
12.26

po trochę dłuższej niż przewidziana przerwie, część druga tego arta.

Kontrola wersji

Jeżeli coś jest tekstem i będziesz to zmieniać – trzymaj to w Gicie. Czy to configi, czy własne skrypty, trzymanie tego w repo ma same zalety. Oszczędzasz czas gdy usuniesz coś w skrypcie przez przypadek, albo gdy 2 tygodnie po zmianach w skrypcie okazało się że jednak nie działa poprawnie i trzeba cofnąć się do poprzedniej wersji.

Tak samo z configami, toole takie jak etckeeper (jest w Debian squeeze, w lenny troche przestarzała wersja)  automatyzują commitowanie zmian (conocne + przy upgrade pakietu), chociaż warto zrobić commit “ręcznie” z odpowiednim komentarzem, zwłaszcza gdy nie jesteśmy sami. Łatwo można się cofnąć po popsuciu, mamy dokłądny obraz jak konfiguracja zmieniała się z czasem, łącznie ze zmianami w /etc podczas aktualizacji paczek. Można też robić backup konfiguracji przez git push do zdalnego repo, lub kopię na innej maszynie przez git clone.

(more…)

2010
12.24
apt-listbugs list `dpkg --get-selections |grep install |perl -ne 'split;print "$_[0] "'`

(aptitude install apt-listbugs przed tym)

Wyświetla:

  • Bugi w aktualnej wersji paczki
  • To czy wszystkie bugi z danej paczki zostały naprawione
  • Która wersja paczki naprawia którego buga
  • Podsumowanie z listą paczek i ilością bugów w każdej

Oczywiście, niektóre nadają się pod ignore (np. “#603048 – rails: Gives dangerous advice regarding log permissions” nie jest jakoś szczególnie strasznym zagrożeniem dla bezpieczeństwa :>) ale ogólnie bardzo użyteczne :)

2010
12.19
helium:/var/torrent☠ xfs_db -r /dev/mapper/rootvg-tor
xfs_db> frag
actual 2649152, ideal 1136, fragmentation factor 99,96%

dla porównania /home:

hydra:~☠ xfs_db -r /dev/mapper/rootvg-home
xfs_db> frag
actual 217039, ideal 213275, fragmentation factor 1,73%

Chociaz jak ktoś się uprze to można po nocach odpalać xfs_fsr (xfsowy defrag)

2010
12.13

Klepię sobie ostatnio mały projekcik i używam mojego domowego serwera jako testserwera dla niego (dlatego że jest w miarę “czysty” więc jak zapomnę dodać jakiegoś liba do zależności bo już mam go na swoim desktopie to wyłapie to przy deployu na serwer). Jak na razie deploy sprowadzał się do wejściu na serwer, zrobieniu pulla i restart aplikacji, ale nie było to zbyt wygodne. Postanowiłem to uprościć (lenistwo przyjacielem automatyzacji;] )

(more…)

2010
11.24

Jeżeli z jakiegokolwiek (przypadkowy UPDATE/INSERT, test query na slave przed wrzuceniem na mastera, “karmienie” nowego slave’a) powodu slave Ci się rozjechał:

Na Masterze (Debian, w innych pewnie będziesz musiał zamiast --defaults-file podać --user=user_name --password=password)

mysqldump --defaults-file=/etc/mysql/debian.cnf -A --master-data >dump.sql
scp dump.sql gdzies:/dump.sql

Na slave: (znowu, w zależności od konfiguracji będziesz musiał klepnąć passworda)

# mysql --defaults-file=/etc/mysql/debian.cnf -e "STOP SLAVE; source dump.sql; START SLAVE"

Uprzedzając:

  • Tak, można też skopiować wszystkie pliki z danymi “na chama”
  • Tak, najlepiej mieć slave w trybie read-only, ale jak ktoś ma superusera w bazie to i tak może robić zmiany więc nie chroni to całkowicie przed psuciem.

Warto też spojrzeć na http://www.maatkit.org/doc/mk-table-sync.html (jest w Debianie jako paczka maatkit) dla trochę “mądrzejszego” synca