Archiwum kategorii: Linux

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

Linux – Bash – skryptowanie w linii poleceń – cz 1.

Myślałem że coś tam wiem o używaniu Basha, niestety (a raczej stety 😉 ), przyjaciel z pracy  pokazał mi dzisiaj jak mało umiem ;). Problem do rozwiązania był prosty: należało sprawdzić adresy IP 20 serwerów. Stwierdziłem, że pisanie skryptu zajmie więcej czasu niż ręczne sprawdzenie ich przy pomocy komendy 'host’. Cóż, rozwiązanie okazało się proste.

Czytaj dalej Linux – Bash – skryptowanie w linii poleceń – cz 1.

Linux – konsola – szybka zmiana nazw plików

Potrzebowałem szybko zmienić nazwę plików (nie pasowała mi koncówka .html), jak szybko można to zrobić? Cóż, ja wykorzystałem gawka:

ls Pra* | sed 's/.html//' | awk '{ system("mv " $1 ".html " $1)}'

Komenda ls znajduje nam potrzebne pliki, następnie przy pomocy sed-a usuwamy niepotrzebną koncówkę a na końcu awk zmienia nam nazwy tak jak chcemy.Tak więc tutaj poznajemy komendę 'system’ dostępną w gawku :D.

Linux – logrotate – kilka mało używanych opcji choć przydatnych

Probując rozwiązac pewien problem przeglądałem sobie opcje konfiguracje programu logrotate.  Zauważyłem kilka ciekawych opcji, z których do tej pory nie korzystałem. Więc tak, program można uruchomić z opcją -d (debug), wtedy program nic nie będzie robił, tylko pokaże co chciałby zrobić, np:

rotating pattern: /var/log/rpmpkgs  weekly (no old logs will be kept)
empty log files are not rotated, old logs are removed
considering log /var/log/rpmpkgs
log does not need rotating

rotating pattern: /var/log/wtmp  monthly (1 rotations)
empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed
considering log /var/log/wtmp
log does not need rotating

Inną ciekawą opcją jest możliwość wstawiania daty w nazwę zamiast kolejnych numerów: dateext, kolejna to maxage która powoduje usunięcie logów po określonej ilości dni (nie ilości rotacji!). Musze tylko sprawdzić jak to działa z delaycompress 😀