Efektywna praca z konsolą w Linuksie cz.2
Mój poprzedni wpis dotyczący poprawy wydajności pracy pod konsolą spotkał się z dość ciepłym przyjęciem, postanowiłem więc kontynuować ten temat i przedstawić Wam 5 kolejnych narzędzi, bez których żyć nie potrafię. Jeśli któregoś z nich nie będziecie mogli znaleźć w Waszym systemie - skorzystajcie ze znanych już Wam narzędzi jak apt-cache, apropos (pierwsza propozycja na dziś) i innych. Wszystkie są dostępne w repozytoriach Ubuntu i Debiana.
1. Jaka to była komenda...
W czasie pracy w konsoli może nam się zdarzyć zapomnieć o jakiejś komendzie, znamy jednak jej zastosowanie. Możemy sobie z tym bardzo prosto poradzić. Wpisujemy
$ apropos {słowo klucz}
Gdzies {słowo klucz} to słowo, które jest powiązane z działaniem komendy. Dla przykładu - gdy szukamy polecenia, które umożliwia nam sprawdzenie miejsca na dysku wpisujemy:
$ apropos disk
aby zawęzić "grono podejrzanych" możemy zastosować standardowe narzędzia i otrzymujemy:
[16:31:44] root@orion:/serwer/konta/download# apropos disk | grep usage df (1) - report file system disk space usage quota (1) - display disk usage and limits quotacheck (8) - scan a filesystem for disk usage, create, check and repair quota files
Nic prostszego. Przecież nikt z nas nie zna na pamięć wszystkich potrzebnych komend. :-)
2. Co mi tyle miejsca zajmuje..
Z czasem wszyscy zaczynamy z przerażeniem patrzeć na ilość zajętego miejsca na naszej głównej partycji. Wartość ta jakkolwiek duża by nie była partycja w którymś momencie zaczyna nas niepokoić. Stosuję wtedy szybki chwyt aby zobaczyć co gdzie i czemu mi zabiera tyle miejsca. Komenda:
$ du -h -c --max-depth=1 zwraca nam w całkiem przystępnej formie ilość zajętego miejsca w każdym katalogu poczynając od miejsca wykonania polecenia. W ten sposób, zaczynając od / możemy sprawdzić, co tak naprawdę zabiera najwięcej wolnego miejsca i spróbować się tego pozbyć. Nie raz nie dwa sposób ten pozwolił mi zaoszczędzić godziny poszukiwań. Polecam!
3.Alternatywa dla fdisk'a
Nie potrafię obsługiwać fdiska. Przyznaję się bez bicia. To toporny i nieintuicyjny program. Po co mi męczyć się z tym programem.. Mam przecież coś lepszego!
# cfdisk
Nigdy w życiu nie widziałem lepszego zarządcy partycji dla Linuksa. Używam go regularnie od kilkudziesięciu tygodni i sprawdza się po prostu znakomicie. Zdaję sobie sprawę, że partycjonowania nie wykonujemy codziennie, jednak posiadanie pod ręką wspomnianego narzędzia w sytuacji "kryzysowej" jest nieocenione.
4.Co mi się dzieje w systemie...
Analiza logów systemowych to temat - rzeka. Za czasów gdy dinozaury przechadzały się po naszej planecie Linuksowcy przeglądali je ręcznie, co sprytniejsi grepowali, awkowali, sedowali i co się tam jescze dało. Po co?
# logwatch
Po krótkiej chwili na Wasze lokalne (skonfigurowane!) konto mailowe przyjdzie wiadomość w "ludzkim formacie" podsumowująca działanie systemu przez ostatnie 24 godziny (licząc od dnia wczorajszego). Jeśli nie mamy skonfigurowanego konta mailowego możemy wydrukować raport na konsolę - odsyłam do pomocy samego programu. Logwatch jest najlepszym moim zdaniem automatycznym analizatorem logów systemowych. Możliwość pełnego oskryptowania, dodawania swoich własnych modułów, mobilność i prostota użycia przy bardzo dokładnej analizie końcowej - nieocenione. 10/10!
5.Limitowanie upload/download
I ostatnie już narzędzie - trickle. Służy ono do cięcia naszego łącza internetowego dokładnie tak, jak my chcemy. Przykład:
$ trickle -u 1 -d 70 wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.3.tar.bz2
Wywołanie takie spowoduje ściąganie najnowszego dostępnego na chwilę obecną kernela linuksa z prędkością 70KB/s, nigdy wyższą. Możemy dzięki temu uruchomić kilka różnych sesji wget'a i nadal dysponować łączem na przeglądanie np. stron internetowych lub wygodną rozmowę poprzez komunikatory internetowe. Osobiście używam trickle do przeprowadzania transparentnych aktualizacji na swoim serwerze. Użytkownicy nawet nie widzą spadku wydajności a system spokojnie się update'uje. Wygodne :-)
Na dziś to tyle. Jak zwykle:
Enjoy!
wget ma parametr --limit-rate
1, 4 i 5 się przyda ;) Ale z jednym się nie zgodzę, konkretnie z tym:
"Przecież nikt z nas nie zna na pamięć wszystkich potrzebnych komend. :-)"
@rash - wget akurat ma, to prawda (nie wiedziałem o tym, zwracam honor!), jednak trickle świetnie się sprawdza wraz z apt-get, rtorrent i innymi cudactwami, które chcemy limitować przez userspace. Wget w przykładzie rzeczywiście troszkę niefortunnie wygląda :-).
apt-get nie korzysta z wgeta? Ja w Gentoo dodaje po prostu do make.conf FETCHCOMMAND="/usr/bin/wget --limit-rate=50k \${URI} -P \${DISTDIR}
rtorrent też ma built-in ogranicznik ;-)
rtorrent'owy ogranicznik mi nie działa :( Dziś w nocy ściągałem sobie muzyczkę z jamendo, użyłem tych limitów wbudowanych i... ciągnęło pełnym łączem.. :/ Muszę nad tym posiedzieć.
Powiem Ci szczerze że nigdy się nie zagłębiałem w kod apt-get'a. Z tego co można organoleptycznie sprawdzić nie używa on wget'a, zajrzę jednak do source'codeu i może go strace'uje - czegoś się dowiem. To że emerge korzysta z wget to akurat widać gołym okiem - w Debianie sytuacja nie jest tak oczywista.
Mi się logwatch spodobał :)
Logwatch jest niesamowity :-) Bardzo długo szukałem dobrego i szybkiego analizatora logów. Oczywiście można przeglądać każdy plik i szukać w nim błędów, jednak po co? :-) Świetne narzędzie - przeskanowałem sieć i wypróbowałem wiele analizatorów. Ten jest idealny.
Ad. 3) Ja długi czas GNU parteda używałem ( ;. Jakoś „fdisk” mi się windzianie kojarzyło.
Ad. 5) O trickle jeszcze nie słyszałem, ale skoro potrafi i upbound limitować, to przyjemne musi być. Ach, ile to ja się męczyłem z traffic shaperem… a potem chamy i tak go zdeprecjonowali > ;.
trickle - po co? HTB od czegos sluzy..... i jest to bardziej globalne...
ps. czy ta strona kiedys zapamienta jaki mam nick, zebym nie musial go wklepywac? :P
Nie każdemu na desktop chce się używać HTB - czasem trzeba szybkiego rozwiązania działającego w userspace.
Mi zapamiętuje nick. Innym też. ;]
ad 2. ja wolę du -c --max-depth 1 | sort -n :)
[bez -h. czyli bez human-readable, za to przesyłamy do sorta, -n traktuje jako liczby]
a no i du się jeszcze w jednej sytuacji przydaje...:
cd /home; deluser --remove-all-files "`du -s * | sort -n | tail -1 | sed -re 's/^[0-9]+//'`"
To jeszcze dodam ad 1:
apropos = man -k
Prostsze do wpisania;)
Odnośnie cięcia pasma i wget -
( Debian ) - zajrzyj(cie) do /etc/apt/apt-file.conf ( paczka apt-file ).
I można ustawiać co i gdzie się chce.
Oczywiście, to bez sensu ustawiać w ten sposób każdy program, ale w przypadku apt da się.
A propos zachwytu nad cfdiskiem. Zrób trochę partycji za pomocą fdisk albo (g)parted i spróbuj je obsłużyć cfdiskiem. Masz duże szanse, że program wywali błąd nakładki partycji. Żeby dokładniej zobrazować o co mi biega: zrób w fdisku partycję, której początek będzie w dokładnie tym samym sektorze co koniec poprzedniej. Każdy inny program sobie radzi z taką nakładką, tylko nie cfdisk.
Partycje tworzę za pomocą cfdisk, więc nie mam takich problemów. :]
Poza tym, nie spotkałem się jeszcze z partycją, która zaczyna się na sektorze poprzedniej. Żaden ze znanych mi partycjonerów tak nie robi.
Robi robi. Chociażby wymienione przez mnie wyżej.
Krótkie i zwięzłe howto - to lubię :)
Rzeczy które chciałem znaleźć, ale jakoś mi się nie chciało szukać. Otwieram jakilinux.org a tam newsik z linkiem - rozwiązanie samo do mnie przyszło :)
Gratki
:) więcej takich opisów!!
miałem napisać, że wget ma opcję --limit-rate, ale widzę już ktoś mnie uprzedził :P Ale wielkie dzięki za TRICKLE taki program jest mi czasem potrzebny, a jakoś nigdy nie miałem czasu go poszukać ;]
Jak będzie chwila to zerknę i na LOGWATCH ;)
Co do limitowania apt'a przez trickle właśnie jest w sieci fajny tutorial: http://ubuntuforums.org/archive/index.php/t-20342.html
Cała sztuczka polega na podmianie programu pobierającego (/usr/lib/apt/methods/http) na skrypt wywołujący trickle z odpowiednim parametrem.
Dziękuję za opisy, logwatch mi się przydał. Szukałem tego. :)