Archive for category Linux

Konfiguracja serwera NFS 3 w Debianie

NFS jest często używanym sieciowym systemem plików. Jego implementacja jest domyślnie dostępna praktycznie we wszystkich dystrybucjach Linuksa, więc bardzo łatwo go zintegrować z systemem plików po stronie gościa.

W przypadku Debiana instalacja jest dosyć prosta, sprowadza się do zainstalowania odpowiedniego pakietu oraz zdefiniowania eksportowanych udziałów.

Serwer NFS jest umieszczony w pakiecie o nazwie nfs-kernel-server, więc pierwszym krokiem jest jego instalacja:

# aptitude install nfs-kernel-server

Konfiguracja udostępnianych udziałów jest przechowywana w pliku /etc/exports, więc należy tam umieścić odpowiednie wpisy:

/exports 192.168.0.0/24(rw,no_subtree_check)

Powyższy wpis powoduje, że udział /exports będzie dostępny dla wszystkich łączących się z sieci 192.168.0.0/24 w trybie odczytu i zapisu.

Aby uruchomić serwer NFS należy teraz wywołać skrypt startowy:

# /etc/init.d/nfs-kernel-server start

Podczas startu serwera na Debianie Lenny wystąpił mi następujący błąd (związany z używaniem nowszego jądra niż standardowo instalowane z dystrybucją):

Not starting NFS kernel daemon: no support in current kernel.

Aby rozwiązać problem, należy zmodyfikować skrypt startowy i zakomentować linię [cii]69[/cci]:

66
67
68
69
70
# See if our running kernel supports the NFS kernel server
if [ -f /proc/kallsyms ] && ! grep -qE 'init_nf(sd|     )' /proc/kallsyms; then
        log_warning_msg "Not starting $DESC: no support in current kernel."
#       exit 0
fi

Opis błędu można znaleźć na stronach Debiana: nfs-kernel-server: init script incompatible with kernel 2.6.32

Tags: , , ,

Automatyczne dopasowanie ilości wyświetlanych linii w poleceniach head i tail

Dwa polecenie head oraz tail pozwalają na wyświetlenie odpowiednio 10 pierwszych lub ostatnich linii podanego pliku tekstowego. Przy użyciu przełącznika -n można określić inną ilość zwracanych linii. Z reguły pracuję na terminalach, gdzie ilość która się mieści na ekranie jest sporo większa niż 10, w związku z czym wolałbym, aby polecenia te odpowiednio do tego rozmiaru się dostosowywały.

Najprościej można zrobić to przy użyciu odpowiedniego aliasu do polecenia i umieszczeniu jego definicji w pliku ~/.bashrc:

alias head='head -n $(($LINES-2))'
alias tail='tail -n $(($LINES-2))'

Uwaga

Ważne jest umieszczenie definicji poleceń w pojedynczych cudzysłowach, dzięki temu zmienna $LINES będzie interpretowana podczas każdego wykonania polecenia, a nie tylko podczas jego definicji (czyli będzie po zmianie rozmiaru terminala polecenie odpowiednio się dostosuje).

W powyżej definicji została wykorzystana zmienna $LINES, która zawiera aktualną ilość widocznych linii w terminalu. Po utworzeniu tych aliasów przy każdym wywołaniu polecenia head lub tail zostanie odpowiednio ustawiona wartość wypisywanych linii na ekranie. Wartość ta jest pomniejszana o 2, aby starczyło miejsca na znak zachęty i w zależności od jego konfiguracji można ją zwiększyć.

Źródła

Tags: , , , ,

Wyłączenie dźwięków systemowych GTK pod KDE

Pracując głównie w środowisku KDE wyłączyłem wszelkie możliwe dźwięki systemowe, niestety ustawienia te nie były respektowane przez aplikacje korzystające GTK, takie jak Firefox czy Eclipse. Ciągle w nich pobrzmiewały pikania przy przełączaniu się pomiędzy zakładkami, plikami, otwieraniu okien dialogowych.

Rozwiązanie jak się okazuje jest całkiem proste ;). Wystarczy do pliku konfiguracyjnego GTK dodać wpis wyłączający wydawanie dźwięków przez aplikacje. W moim przypadku jest jest to plik ~/.gtkrc-2.0-kde4 (podejrzewam, że w środowisku GTK może mieć nazwę bez końcówki -kde4) oraz w pliku należy wstawić to:

gtk-enable-event-sounds=0

Od tego momentu ani Firefox ani Eclipse nie wydają dźwięków.

Źródła

Tags: , , , , ,

Rozpakowanie plików z archiwum RPM

Komenda, która pozwala na rozpakowanie wszystkich plików znajdujących się danym archiwum RPM:

rpm2cpio pakiet.rpm | cpio -vid

Zawartość pakietu zostanie rozpakowana do aktualnego katalogu.

Tags: , , , ,

Jak wyczyścić pamieć podręczną DNS w Linuksie

Problem jest prosty: ulega zmianie adres serwera a nasz komputer ciągle łączy się ze starym adresem. Jest to spowodowane tym, że odpowiedzi od serwera DNS są przechowywane w pamięci podręcznej (żeby nie zasypywać biednego serwera DNS ciągle pytaniami). Ponieważ każda odpowiedź z serwera DNS ma pewien czas życia, możemy poczekać aż on upłynie i ponownie zostanie wysłane pytanie, lub też spróbować coś z tym zrobić.

W zależności od konfiguracji, może zadziałać jeden ze sposobów:

  • Restart interfejsów sieciowych – jeżeli jest możliwe, może się okazać najprostszą metodą, ale nie zawsze skuteczną.
  • Używamy demona dnsmasq – demon do przechowywania w pamięci podręcznej adresów DNS. Aby wyczyścić pamięć podręcznę, należy wysłać do niego sygnał SIGHUP
    # kill -SIGHUP $(pgrep dnsmasq)
  • Używamy demona bin – można użyć aplikacji służącej do zarządzaniem tym serwerem rndc
    # rndc flush
  • Używamy demona nscd:
    # /etc/init.d/nscd restart

Tags: , , , , ,