Comparing two lists in bash

I had quite simple task - compare two lists of hosts and check if hosts from first one are also on the second one. I started with diff: diff -u biglist.txt hosts_to_check.txt | grep -E "^\+" It was fine but output needs some filtering to get what I want. I’ve found another example with grep: grep -Fxv -f biglist.txt hosts_to_check.txt | sort -n This will search for all lines in hosts_to_check....

2014-02-18 · 1 min · timor

Regenerate thumbnails in Shotwell 0.15 (for last month)

I love Shotwell  external link for it’s simplicity and easy export to Piwigo  external link . After Christmas I added new photos to my library but after that I made some modifications to them (red eye reduction, etc…). Because Shotwell generate thumbnails only on import, all my modifications were not visible on preview. I’ve started searching how to regenerate thumbs and found this info  external link . There were two issues with this method:...

2014-01-08 · 1 min · timor

Debian - zablokowanie aktualizacji pakietu

W teorii nie powinno się blokować aktualizacji pakietów bo łatają dziury itd…. Ale! Zdarzyły mi się ostatnio dwie sytuacje, które do tego mnie zmusiły: aktualizacja hudsona kończyła się błędem przy starcie usługi, aktualizacja domU Xen skończyła się problemem z kompatybilnością mechanizmu udev w systemie i jądrze (hypervisor miał starsze jądro niż spodziewało się DomU). W takich sytuacjach bardzo przydaje się możliwość zablokowania aktualizacji jednej “psującej” paczki na pewien okres czasu by nie opóźniać innych aktualizacji a sobie dać czas na rozpracowanie problemu....

2013-11-05 · 1 min · timor

Kopiowanie wolumenów LVM z dd i netcat

Niedawno chciałem skopiować maszynę wirtualną z jednego hypervisora na innego. Były to 3 wolumeny LVM o rozmiarach od 50 do 100GB. Dawno temu zrobiłem sobie skrypty do backupu - jeden kompresuje wolumeny LVM - a drugi pozwala odtworzyć z dekompresja na drugim serwerze. Tyle że przy tak dużej maszynce będzie to trwało masakrycznie długo - fajnie byłoby móc równocześnie kopiować i odtwarzać (live)… I wtedy przypomniało mi się narzędzie netcat - zrobiłem snapshoty wolumenów i mogłem zaczynać....

2013-09-02 · 1 min · timor

Tworzenie patch’y z poleceniami diff i patch

Jest kilka powodów dla których tworzenie patchy jest przydatne - jeśli tu jesteś to pewnie masz jakiś własny… Tworzenie patch’a diff -crB old new > from-old-to-new.patch W powyższym poleceniu założyłem że old i new to katalogi z wieloma podkatalogami i plikami - stąd opcja -r. -c dodaje kilka linijek “kontekstu” przez co łatwiej rozeznać się w patch’u. Opcja -B ignoruje puste linie, których patchowanie mnie nie interesuje. Patchowanie Na początek zawsze warto wywołać polecenie z opcją -dry-run by zobaczyć czy patch wykona się poprawnie:...

2013-04-01 · 1 min · timor

Rozsynchronizowane serwery NTP

Miałem ostatnio zabawną sytuację gdy kilka serwerów z zainstalowanym NTPD miało rozjazdy rzędu kilkunastu sekund. Wyszło na to że moje serwery synchronizowały się z różnymi zewnętrznymi serwerami NTP pomiędzy, którymi były rozjazdy i te rozjazdy synchronizowały się na moich serwerach. Jeden “z moich” ustanowiłem głównym a wszystkie inne przekierowałem na niego (komentując wszystkie inne serwery NTP w konfiguracji). Wymusiłem synchronizację: ntp -q Sprawdziłem jak duży jest offset i jitter (powinny być bardzo małe):...

2013-03-31 · 1 min · timor

Linux - naprawianie bad sectorów

Dyski się zużywają i w końcu wcześniej czy później pojawiają się na nich bad sectory. Jeden z moich dysków ciut się posypał a że służy wyłącznie do backupów to mogę z tym żyć. Ale z drugiej strony jeżeli już będę musiał sięgnąć do backupów to chcę mieć pewność że coś odzyskam, dlatego postanowiłem zrobić kilka testów. Nawet jeśli nie naprawi to sektorów to przynajmniej zostaną zaznaczone jako uszkodzone i realokowane....

2012-12-27 · 3 min · timor

Nginx - kompresowanie plików dla gzip_static

Ruski serwer WWW  external link ma przydatną funkcję serwowania wersji plików skompresowanych gzip’em - przez co możemy plik skompresować raz i będzie on serwowany klientom obsługującym kompresję HTTP ale już bez każdorazowego kompresowania go. Jest to bardzo przydatne na stronach z dużym ruchem gdzie można w ten sposób zaoszczędzić takty CPU na właściwą obsługę połączeń a nie kompresję. Drugie miejsce gdzie może to być przydatne to VPS’y i “cienkie” serwery, które na kompresji przy większym obciążeniu spędzają zbyt dużo czasu i daje się to odczuć w działaniu strony....

2012-12-17 · 3 min · timor

ldapsearch w Active Directory

Można lubieć AD, można go nie lubieć… Ale jak już się ma to warto czasem zintegrować go z tym… i tamtym… Od strony Linuksa najwygodniej można to osiągnąć przez LDAP. A żeby to dobrze zrobić trzeba najpierw przetestować czy aby wszystko działa jak byśmy sobie tego życzyli. I tutaj bardzo przydatne jest narzędzie ldapsearch. Do odpytywania LDAP’a potrzebujemy jeden pakiecik, który zawiera kilka narzędzi do jego obsługi: apt-get install ldap-utils Teraz możemy próbować przeszukiwać katalog np....

2012-12-05 · 2 min · timor

LVM na RAID5 i dysku z sektorami 4KB

Po zakupie nowych dysków zamierzam utworzyć zdegradowaną macierz RAID5 z dwóch dysków (na trzecim na razie znajdują się dane), potem utworzyć wolumen LVM, sformatować go, przekopiować dane z pojedynczego dysku na macierz i dołączyć trzeci dysk do macierzy odbudowując parzystość. Zadanie będzie o tyle ciekawe że dysk ma 4KB sektory i trzeb będzie dbać o wyrównanie zasobu do rozmiaru sektora, a w przypadku LVM’a wyrównanie do chunk’a z macierzy. Prawidłowe wyrównanie partycji Kupując nowy dysk (o pojemności od 500GB w górę), mamy spore szanse że trafimy na sztukę, która wykorzystuje 4KB sektory do alokacji danych....

2012-11-07 · 15 min · timor