Wszystkie wpisy, których autorem jest Krzysztof Jozwiak

Linux – ssh – sprawdzanie poprawności kluczy w authorized_keys

Czasamy  kopiujemy klucze publiczne między serwerami, jak jednak sprawdzić czy klucze są poprawne?

[root@centos .ssh]# ssh-keygen -B -f authorized_keys
2048 xonip-tihir-cezol-bahuf-tanyh-lehum-vapon-hucet-telid-venyv-luxax authorized_keys
[root@centos .ssh]# ssh-keygen -B -f authorized_keys_fails
key_read: uudecode AAAAB3NzaC1yc2EAAAABIwAAAQEAonUZYUEc4bTAg6MQSuEgHNmWdKYsmk4krXO0eOL+lC+H4NcIetzY8zzuoGd0tgpQq/DnD3LkMdRmgez/pczsm9UnOsIcG+tQia/l22+aXcm5qUNEYLRka+kcoSjeHe5d6g5f8zoDvJ62x050+W77BkAUBJ3DoTLfDfN9nd+3a50axhWewh1aE19xen3uGlCCPLzRHwfzI3VWdcFUtbw0Fy/EDWhq5HOmm8McZKX2aisOtfMRgRc91sVxd3g/pdoOiw9l/ziZAS7+68dKnqHfx9om741Ua1NmX9XXhwBIFzlKwMTeHqOr15uM5HIfS/u+x+suG2+P+gKjwO+nuviyfQ= krzysztof.jozwiak@linuxexpert.pl
failed
authorized_keys_fails is not a public key file.

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.

Perl – sprawdzanie poprawności argumentów podanych do skryptu

Jednym z podstawowych problemów jest walidacja danych podanych przez użytkownika do skryptu. Walidacji powinny być podane nawet opcje wywołania skryptów. Czyli powinniśmy prawdzić, czy faktycznie dana opcja, której użył użytkownik istnieje. Mój sposób na to jest prosty:

sub usage(); ## prototype of usage() function

usage() if (! GetOptions( …. ))

usage() if ($usage);

ps. tak, stworzyłem podstronę Sztuczki -> Perl, na której będę podsumowywał moje nalepsze praktyki ;). Nie jestem ekspertem ale ma to mi pozwolić lepiej zarządzać moją wiedzą…

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 😀

Linux – sfdisk i zabezpieczenie listy partycji na dyskach

Proste polecenie dodane do crona (patrz niżej) pozwala zapisać aktualną listę partycji do plików. Pliki w formacie dump-a z polecenia sfdisk mogą być wykorzystane do otworzenia układu partycji.

for DISK in `sfdisk -l 2>/dev/null  | grep Disk | sed 's/[:\/]/ /g' | awk '{ print $3}'`;do sfdisk -d /dev/$DISK > /backups/disks_layout/${DISK}.out;  done

W moim przypadku uzyskujemy pliki:

[root@centos storage1]# ls -l /backups/disks_layout/
total 12
-rw-r--r-- 1 root root 412 Jul 13 19:31 hda.out
-rw-r--r-- 1 root root 251 Jul 13 19:31 sda.out
-rw-r--r-- 1 root root 250 Jul 13 19:31 sdb.out

a przykładowy plik ma postać:

[root@centos storage1]# cat sdb.out
# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=       63, size=2930272002, Id= c
/dev/sdb2 : start=        0, size=        0, Id= 0
/dev/sdb3 : start=        0, size=        0, Id= 0
/dev/sdb4 : start=        0, size=        0, Id= 0

Linux – lista dysków twardych w systemie

Przygotowując się do najgorszego należy widzieć jakie dyski mamy w systemie (by móc później otworzyć taką samą konfuracje dysków), tylko jak to sprawdzić? Najprościej użyć fdisk -l ;). Jeżeli nie podamy urządzenia, które nas intersuje, wylistuje informację o wszystkich dyskach!

[root@centos data1]# fdisk -l | grep "Disk"
Disk /dev/hda: 40.0 GB, 40020664320 bytes
Disk /dev/sda: 1500.2 GB, 1500299395072 bytes
Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes

Wynik polecenia proponowałbym zapisywać na twardy dysk co jakiś czas (np. raz w tygodniu) i umiesczać w backupie. Pozwoli nam to w najgorszym przypadku odczytać plik z kopii zapasowej, na jego podstawie stworzyć tablicę partycji i wtedy można już używać Baculy ;).