Wszystkie wpisy, których autorem jest Krzysztof Jozwiak

Jeżeli ktoś chciałby się z nami skontaktować oto namiary na mnie:

email: Krzysztof.jozwiak@linuxexpert.pl

Certyfikaty:

Red Hat Engineer

svn+ssh na niestandardowym porcie?

Jeżeli mamy serwer ssh na niestandardowym porcie i chcemy podłączyć się po ssh do repozytorium Subversion spostrzeżemy, że nie ma możliwości podania w opcjach komendy svn portu na który ma się połączyć. Rozwiązaniem tego problemu jest stworzenie „osobnego protokołu/tunnelu” w pliku konfiguracyjnym Subversion.
Czytaj dalej svn+ssh na niestandardowym porcie?

Program curl – przykład użycia z linii poleceń

Program nc pozwala przeskanować serwer, sprawdzić czy serwer WWW jest dostępny ale jak łatwo pobrać stronę albo wywować stronę z jakimś parametrem? Jest to bardzo przydatne w przypadku posiadana urządzeń siecowych sterowanych przez przegląrkę.

Więc jak łatwo wywołać stronę internetową? Z wykorzystaniem programu curl:
Czytaj dalej Program curl – przykład użycia z linii poleceń

OpwnWRT, ssh i logowanie bez kluczy

Mam dwa routery z zainstalowanym openwrt. Chciałem móc wykonywać jedno polecenie wydane z jednego routa na drugim bez podawania hasła.

1. Na źródłowym serwerze stworzyłem klucze i następnie przekonwertowałem aby dropbear mógł go używać:

ssh-keygen -t rsa
dropbearconvert openssh dropbear id_rsa /etc/dropbear/server1_identity

2. Na serwerze docelowym klucz publiczny dodaje do pliku authorized_keys:

root@Gargoyle:/etc/dropbear# ls -l /etc/dropbear/authorized_keys
-rw-------    1 root     root           394 Mar 27 20:30 /etc/dropbear/authorized_keys

I teraz mogę się logować bez podawania hasła!

root@router:~/.ssh# ssh -i /etc/private_rsa_key root@192.168.200.30


BusyBox v1.19.4 (2014-01-22 14:20:14 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.


             _____                             _
            |  __ \                           | |
            | |  \/ __ _ _ __ __ _  ___  _   _| | ___
            | | __ / _` | '__/ _` |/ _ \| | | | |/ _ \
            | |_\ \ (_| | | | (_| | (_) | |_| | |  __/
             \____/\__,_|_|  \__, |\___/ \__, |_|\___|
                              __/ |       __/ |
                             |___/       |___/

Linux: Wake On LAN

W przypadku mojego lab-a, serwer Linuksowy postanowiłem wyłączać na czas, kiedy nie używam go. Jednak ze względu na fakt, że serwery znajdują się w piwnicy, każdorazowe włączanie go ręcznie raczej odpadało. Postanowiłem wykorzystać Wake On Lan (WOL). W obecnej chwili większość płyt głównych ma obsługę tego protokołu.

Po stronie komputera mającego być obudzonym

  1. Włączamy obsługę WOL w BIOSie
  2. Wymuszamy obsługę WOL przez kartę sieciową (ja dodałem ten wpis do /etc/rc.local):
     ethtool -s eth0 wol g 

Więcej: http://www.cyberciti.biz/tips/linux-send-wake-on-lan-wol-magic-packets.html.

Po stronie urządzenia budzącego

OpenWrt

Ja zainstalowałem pakiet etherwake:

#opkg update
#opkg install etherwake

Komputer docelowy budzę komendą:

etherwake  00:0d:61:30:43:48

Więcej informacji http://wiki.openwrt.org/doc/uci/wol

Więcej o WOL https://wiki.archlinux.org/index.php/Wake-on-LAN

Perl: własny moduł

Nazwa pliku powinna być taka sama jak nazwa pakietu ale dodajemy rozszerzenie pm (w naszym przypadku Template.pm). Jeżeli chcemy aby jakieś moduły były użyte w kodzie modułu, umieszczamy ich nazwy po słowie package (wcześniej wpisane dotyczyły by głównego programu czyli pakietu main).

Zwyczajowo, jeżeli chcemy odwołać się do funkcji będącej w module, musimy użyć nazwy modułu, dwukropka oraz nazwy funkcji (np. my $Cos = Template::Function(a,b)). Tą kłopotliwą składnie można uprościć dzięki eksportowaniu nazw funkcji i zmiennych (u nas use Export qw(import) i tablica wyeksportowanych elementów).

Moduł zawsze musimy kończyć wartością 1. Oznaczającą że kod został poprawnie załadowany.

#! /usr/bin/perl
package Template;

use strict;
use warnings;
use Data::Dumper;

use Exporter qw(import);
our @EXPORT_OK = qw(Function);

sub Function
{


}

1

W internecie:
http://www.tutorialspoint.com/perl/perl_modules.htm

Perl i używanie DATA

Jednym z lepszych sposobów umieszczania danych w pliku (gdy mamy dużą ich ilość) jest umieszczenie ich na końcu pliku po napisie __END__. Wtedy możemy skorzystać z wbudowanej tablicy <DATA>  jak poniżej:

#! /usr/bin/perl
use strict;
use warnings;

while (<DATA>) {
    print $_;
}
__END__
data1
data2
data3
data4

Wynik będzie następujący:

root@router:~# perl test_data.pl
data1
data2
data3
data4