Archiwum kategorii: Linux

CentOS: instalacja unrar-a

Cóż, w standardowych zasobach nie ma pakietu unrar, nie jest to jednak wielki problem:

[root@centos fun]# wget http://packages.sw.be/unrar/unrar-4.0.1-1.el5.rf.i386.rpm
[root@centos fun]# rpm -ihv unrar-4.0.1-1.el5.rf.i386.rpm 
ostrzeżenie: unrar-4.0.1-1.el5.rf.i386.rpm: Nagłówek V3 Podpis DSA: NOKEY, key ID 6b8d79e6
Przygotowywanie...          ########################################### [100%]
   1:unrar                  ########################################### [100%]

Linux: jak sprawdzić typ systemu plików bez montowania go?

jak robisz dużo rzeczy naraz możesz zapomnieć czy coś już wyknowałeś czy nie. Tak samo jak robisz coś automatycznie możesz coś
pomieszać. Mnie się ostatnio to przytrafiło, W efekcie musiałem sprawdzić czy wpis w tablicy partycji jest poprawny oraz czy system plików jest już stworzony czy nie. Sprawdzenie tablicy partycji było proste:

[root@ziutusFedora64 ~]# sfdisk -l /dev/sdd

Dysk /dev/sdd: cylindrów: 182401, głowic: 255, sektorów na ścieżce: 63
Jednostka = cylindry, czyli 8225280 bajtów, bloki 1024-bajtowe liczone od 0

  Urządz.Rozr. Początek Koniec #cyl.    #bloków   Id  System
/dev/sdd1   *      0+  97260   97261- 781248951   86  NTFS volume set
/dev/sdd2      97261  133733   36473  292969372+  86  NTFS volume set
/dev/sdd3          0       -       0          0    0  Brak
/dev/sdd4          0       -       0          0    0  Brak

Ale wiecie jak sprawdzić bez montowania czy systemy plików istnieją? Ja już tak:

[root@ziutusFedora64 ~]# file -s /dev/sdd1
/dev/sdd1: x86 boot sector, code offset 0x52, OEM-ID "NTFS    ", sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, heads 255, hidden sectors 63, dos < 4.0 BootSector (0x80)

Ok, pierwsza partycja już ma system plików.

[root@ziutusFedora64 ~]# file -s /dev/sdd2
/dev/sdd2: data

Drugą należy sformatować.

Przy okazji, należy pamiętać o innej możliwości, otóż tablica partycji może pokazywać błędny typ partycji ;).

Używanie ssh na linuksie i historia co było robione

W windowsowym programie Putty jest ciekawa opcja pozwalająca zapisywać wszystko co robiliśmy w danej sesji. Ciekawiło mnie, czy jest to także możliwe w linuskie. I co? jest to banalne choć na początek upierdliwe ;). Ogólna idea jest bardzo prosta, należy przesłać strumień do kolejnego programu, którym będzie tee!:

ssh uzytkwonik@server | tee plik_logu.txt

Wypadałoby pliki historii tworzyć z uwzględnienem nazwy serwera i daty, więc prosi się o mały skrypt do tego. Ale to już zostawiam wam jako samodzielną pracę…

Linux i Bash – historia poleceń z datą wykonania

W Bash-u mamy zmienną HISTTIMEFORMAT, jeżeli jest pusta to żadna data nie jest logowana, jeżeli natomiast jest różna od pustej (NULL),
to przed każdą komendą w pliku history pojawia się data w określonym formacie (sprawdź opis strftime). Przykładowo:

export HISTTIMEFORMAT="%Y/%m/%d (%A) - %H:%M:%S "

Co daje efekt następujący:

$ history | tail -n 2
508  2010/10/12 (wtorek) - 19:48:24 clear
509  2010/10/12 (wtorek) - 19:48:36 history | tail -n 2

Warto też zwiększyć domyślą wielkość pliku history, standardowo zapisywane są w nim tylko ostatnie 500 komend:

export HISTFILESIZE=3000

Jak sprawdzić wersję Ubuntu?

Logujesz się na zdalny system, chcesz sprawdzić co za Linux tam jest zainstalowany. Pierwszy ruch to 'uname -a’:

root@czz60610-laptop:~# uname -a
Linux czz60610-laptop 2.6.31-22-generic #65-Ubuntu SMP Thu Sep 16 15:48:58 UTC 2010 i686 GNU/Linux

Cóż, mółgbyś zgadywać po wersji jądra która to wersja Ubuntu ale powinieneś być pewny. Więc tutaj ja znam dwa elegenackie rozwiązania:

1. Przejrzeć zawartość /etc/issue
# cat /etc/issue
Ubuntu 9.10 \n \l

2.skorzystać z lsb_release:

# lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 9.10
Release:    9.10
Codename:    karmic

To samo możemy zobaczyć w pliku /etc/lsb-release.

Możnaby jeszcze sprawdzić /etc/apt/sources.list ale nie uznaję tego za eleganckie rozwiązanie.

Bash: liczby losowe

W zmiennej RANDOM Bash trzyma zmienną z zakresu 0-32767:

$echo $RANDOM
17152
$ echo $RANDOM
15361

Jeżeli chcemy uzyskać wartość z  zakresu 0 jakaś liczba, np. 100, musimy zastosować drobne sztuczki:

$ let R=$RANDOM%100; echo $R
90
$ let R=$RANDOM%100; echo $R
16

Jeżeli natomiast chcemy liczbę z zakresu np. 20 – 120 musimy wylosować liczbę z z zakresu 0-100 i dodać do niej dolną granicę czyli 20:

$ let R=$RANDOM%100+20; echo $R
98
$ let R=$RANDOM%100+20; echo $R
117