W przypadku pracy w środowisku wielu administratorów albo na wielu serwerach przydatne może być nauczenie się stworzenia prostych pakietów DEB i RPM. Tutaj opiszę metodę tworzenia primitywnych pakietów DEB. Osobiście używam jej do dystrybucji skryptów wspomagających administrację serwerami
Archiwum miesiąca: kwiecień 2011
Bash: wartość domyślna zmiennej
Czasem w prostych skryptach warto nadać zmiennym wartość domyślną. W moim przypadku chodzi głównie o nazwy plików konfiguracyjnych, które są ściśle określone ale też można podać opcjonalnie inne pliki. Można to zrobić na dwa sposoby, jeden to oczywiście walka z if i else ale drugi jest bardziej przyjemny.
W przypadku bardzo prostych skryptów mozna użyć zmiennej $1:
LIST_OF_SERVERS=${1:-"servers_list.txt"};
Albo bardziej rozbudowany:
LIST_OF_SERVERS=${LIST_OF_SERVERS:-"servers_list.txt"};
Drobne wyjaśnienie:
Zmienne można zapisywać w dwa sposoby: jako $ + NAZWA_ZMIENNEJ (bardzo to ogranicza wszystkie zabawy z zmienną) oraz jako $ { NAZWA_ZMIENNEJ}. W drugim przypadku możemy używać większej ilości operacji, jak tutaj podstawiania wartości domyślnej.
Linux: jak wskazać technikowy interface sieciowy
Cóż, nie zawsze nasze systemy linuksowe mamy przy sobie, czasem są one w zdalnych serwerowniach. Jak wskazać interesujący nas port sieciowy, jeżeli mamy ich kilka? Z pomocą przychodzi nam polecenie ethetool i parametr -p wskazujący interface (ostatni parametr to czas wskazywania). W lepszych serwerach (kartach sieciowych) zapali się specjalna dioda, w gorszych podświetli się dioda od ruchu sieciowego (nawet jak nie ma kabla). Przykład wywołania komendy:
ethtool -p eth0 10
Jak słuchać trójki na Linuksie?
Jako użytkownik Linuksa (jakoś nie chciało mi się przerzucać na Windowsa jako stacji roboczej) postanowiłem zmienić ulubioną stacje właśnie na trójkę (Polskie Radio program 3). NIestety ich odtwarzacz umieszczony na stronie nie działa na mojej platformie! (ach to PUBLICZNE radio z MISJĄ).
Czytaj dalej Jak słuchać trójki na Linuksie?
Iptables – komentowanie reguł firewall-a
Tworząc reguły firewall-a często przydałoby się skomentować skąd one wzieły się. Możemy to oczywiście zrobić w własnym skrypcie ale większość dystrybucji (wszystkie?) mają skrypty startowe, gotowe rozwiązania, narzędzia wspomagające itp. Poza tym przyjemnie byłby listując reguły firewall-a widzieć ich przeznaczenie. Na szczęście niektórzy pomyśleli o tym przede mną i mamy moduł „comment”. Efekt jego urzycia jest następujący:
[root@centos ~]# iptables -L -n | grep -i httpd ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp multiport dports 80,443 /* httpd - apache2 */
A regułę tworzymy następująco:
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -m comment --comment "httpd - apache2" -j ACCEPT
Jak widać idealnie nadaje się do łączenia z innym modułem: multiport.
Bind9 – zmiana prezentowanej wersji serwera
Jeżeli chcemy zmienić wersję prezentowaną przez Bind9 możemy w sekcji options dodać:
version "version: blablabla";
I wtedy nasz serwer zwróci następującą odpowiedz:
user@ubuntu$ dig +nostat +nocomments +nocmd -t txt -c chaos VERSION.BIND @127.0.0.1 ;VERSION.BIND. CH TXT VERSION.BIND. 0 CH TXT "version: blablabla" VERSION.BIND. 0 CH NS VERSION.BIND.
sudo -i i bycie root-em
Zawsze, na systemie Ubuntu, używałem komendy sudo su – by zostać root-em, jednak ostatnio zobaczyłem prostszy sposób: sudo -i:
$ sudo -i
[sudo] password for user:
root@ubuntu:~# whoami
root
Kadu jako multikomunikator
No i naszła chwila, gdy musiałem zainstalować multikomunikator, za dużo ludzi, którzy odeszli z firmy nie używało GG (kurcze, co za czasy by w Ruminii czy Czechach nie używanego tego doskonałego softu?). Myślałem, że bedzie z tym problem ale nie ma, nowe gg (0.9.0) potrafi ładnie współpracować z gtalkiem jak również facebook-iem. jedyną wadą dla mnie jest brak sprawdzania pisowni, może brakuje mi jakieś wtyczki a może będę musiał zainstalować inny :/
Linux: Dlaczego korzystanie z dystrybucyjnych narzędzi do aktualizacji systemów nie zawsze jest najlepsze…
W przypadku dużych środowisk, mówimy o setkach jak nie tysiącach systemów, musimy być pewni że środowiska mają taką samą konfigurację (takie same wersje pakietów). wynika to z faktu, iż nie możemy pozwolić sobie na jakiekolwiek problemy, oprogramowanie przetestowane na serwerach testowych musi być zainstalowane dokładnie w tych samych wersjach na serwerach produkcyjnych.
Gdy używamy up2date lub yum zostaną zaisntalowane ostatnie dostępne aktualizacje, czyli systemy aktualizowane ostatnio a aktualizowane 2 tygodnie temu będą się różnić.
AIX: HMC – na jakiej maszynie znajduje się lpar?
Bardzo przydatną komendą w przypadku korzystania z HMC w trybie tekstowym (tak, lubie udawać że potrafie pisać skrypty) jest lssyscfg. W przypadku przeglądania cech lpar-a pojawia się jednak problem, trzeba podać na jakiej maszynie znajduje się dany lpar :/. Jak to znależć? Wystarczą 2 proste pętle:
for MACHINE in `lssyscfg -r sys -F "name"`; do lssyscfg -r lpar -m $MACHINE -F "name" | while read LPAR; do echo "$MACHINE;$LPAR"; done; done
Powyższe polecenia pozwala stworzyć listę w formacie CSV. Prosty grep i cut pozwalają wydobyć poszukiwaną informację:
for MACHINE in `lssyscfg -r sys -F "name"`; do lssyscfg -r lpar -m $MACHINE -F "name" | while read LPAR; do echo "$MACHINE;$LPAR;"; done; done | grep "Szukany_LPAR" | cut -d ";" -f 1