Tworzyłem dzisiaj nowe repozytorium svn dla pewnego projektu i spotkałem się z problemem:
svn: attempt to write a readonly database
Tworzyłem dzisiaj nowe repozytorium svn dla pewnego projektu i spotkałem się z problemem:
svn: attempt to write a readonly database
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 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ń
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. _____ _ | __ \ | | | | \/ __ _ _ __ __ _ ___ _ _| | ___ | | __ / _` | '__/ _` |/ _ \| | | | |/ _ \ | |_\ \ (_| | | | (_| | (_) | |_| | | __/ \____/\__,_|_| \__, |\___/ \__, |_|\___| __/ | __/ | |___/ |___/
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.
ethtool -s eth0 wol g
Więcej: http://www.cyberciti.biz/tips/linux-send-wake-on-lan-wol-magic-packets.html.
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
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
Ostatnio dostałem ofertę tanich certyfikatów SSL:
http://webd.pl/certyfikatyssl#c2. Cena 49 zł za roczny certifikat nie wydaje się zła :).
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
Problem:
Jak zobaczyć jakie adresy powinne być dodane do firewall-a?
Rozwiązanie: Włączmy logowanie pakietów:
iptables -I INPUT 1 -m state --state NEW -j LOG --log-level 4 --log-prefix "IPTables-input: " iptables -I OUTPUT 1 -m state --state NEW -j LOG --log-level 4 --log-prefix "IPTables-output: "