Bądź na bieżąco - RSS

Obsługa UPS Smart-UPS SC1000 w Debian Squeeze

3 listopada, 2012 | Brak Komentarzy | Kategoria: Linux, Porady

Dawno już minęły czasy, kiedy praktycznie każdy UPS firmy APC, obecnie APC Schneider, można było obsłużyć za pomocą linuksowego daemona apcupsd. Na stronie jego autorów można znaleźć ostrzeżenie przed kupowaniem modeli SmartUPS SMX/SMT 750, 1000, 1500, czy SmartUPS RT 3000XL, 5000XL. Niestety padłem ofiarą takiego zakupu i duże było moje zdziwienie, że nic nie działa jak powinno. Ponieważ miałem możliwość wymiany urządzenia, to zamówiłem nowy, inny model. Tym razem zażyczyłem sobie żeby był obsługiwany przez apcupsd. Po paru dniach dotarł UPS Smart-UPS SC1000. Zabrałem się szybko za instalacje i okazało się, że znowu jest problem. Serwer nie miał portu szeregowego, zaś UPS zamiast kabla USB został wyposażony w adapter Profilic USB-to-serial. Mając na pokładzie Debiana Squeeze zacząłem zmagać się z adapterem. Moduł obsługi został dołączony do standardowego jądra, jednak UPS nadal pozostawał ślepy i głuchy. Po kilku godzinach szukania rozwiązania, trafiłem na strony Ubuntu Forum, gdzie udało mi się znaleźć pozyteczne informacje i przygotować działające, choć może niezbyt eleganckie rozwiązanie.

Po pierwsze – modyfikujemy skrypt startowy ’/etc/init.d/apcupsd’, dodając między wierszem:

case "$1" in
  start)
    echo -n "Starting $DESC: "

a wierszem:

rm -f /etc/apcupsd/powerfail

następujący kod:

if [ ! -d /dev/usb-tty ]
then
mkdir -p /dev/usb-tty
fi

mknod /dev/usb-tty/ttyUSB0 c 188 0
mknod /dev/usb-tty/ttyUSB1 c 188 1
mknod /dev/usb-tty/ttyUSB2 c 188 2
mknod /dev/usb-tty/ttyUSB3 c 188 3
mknod /dev/usb-tty/ttyUSB4 c 188 4
mknod /dev/usb-tty/ttyUSB5 c 188 5
mknod /dev/usb-tty/ttyUSB6 c 188 6
mknod /dev/usb-tty/ttyUSB7 c 188 7
mknod /dev/usb-tty/ttyUSB8 c 188 8
mknod /dev/usb-tty/ttyUSB9 c 188 9
mknod /dev/usb-tty/ttyUSB10 c 188 10
mknod /dev/usb-tty/ttyUSB11 c 188 11
mknod /dev/usb-tty/ttyUSB12 c 188 12
mknod /dev/usb-tty/ttyUSB13 c 188 13
mknod /dev/usb-tty/ttyUSB14 c 188 14
mknod /dev/usb-tty/ttyUSB15 c 188 15

Po drugie – edytujemy plik ’/etc/apcupsd/apcupsd.conf’ i definiujemu następujące parametry:

UPSCABLE smart
UPSTYPE apcsmart
DEVICE /dev/usb-tty/ttyUSB0

Ostania linijkę powinniśmy zmodyfikować w zależności od portu, do którego podłączyliśmy UPS. Po restarcie daemona apcupsd:

/etc/init.d/apcupsd stop
/etc/init.d/apcupsd start

nasz UPS, po wpisaniu polecenia:

/etc/init.d/apcupsd status

powinien odezwać się dobrze znanym komunikatem.

MG

Tagi: , , ,

Instalacja winapcupsd na systemie serwerowym

6 października, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Czy wszystkie serwery Windows powinny być zabezpieczone za pomocą zasilaczy awaryjnych? Odpowiedź jest oczywista. Jednak nie zawsze łatwa w realizacji. Co zrobić jeżeli nie mamy akurat pod ręką np. APC Smart-UPS, dedykowanego dla serwerów a pozostały nam niewykorzystane APC Back-UPS dla stacji roboczych? Zazwyczaj ten drugi pozwoli na prawidłowe zamknięcie systemu  w ciągu kilku minut, nadaje się zatem na tymczasowy zasilacz. Problem polega jednak na oprogarmowaniu dostarczanym ze sprzętem:

  • APC Smart-UPS jest sprzedawany z aplikacją PowerChute Business Edition, dedykowaną dla serwerów, i nie obsługuje innych modeli zasilaczy APC,
  • z kolei APC Back-UPS jest sprzedawany z aplikacją PowerChute Personal Edition, której nie możemy zainstalować na serwerowyn systemie.

Można pomysleć, że to sytuacja bez wyjścia. Tymczasem, ku mojemu zaskoczeniu, można skorzystać z oprogramowania na licencji GPL, którym jest Apcupsd. Na pewno dla każdego, kto instalował zasilacze APC pod Linuxem, ta nazwa nie brzmi obco. Na stronie projektu znajduje się odnośnik do portu dla Windows. Okazuje się, że aplikacja działa bardzo sprawnie a konfiguracja nie różni się niczym od tej z Linuxa. Jedynym, drobnym problemem, jest instalacja sterownika dostarczanego z aplikacją (należy uważnie przeczytać dokumentację i postępować zgodnie z instrukcją krok po kroku). Poza tym winapcupsd pozwala cieszyć się na serwerze pełnymi możliwościami zasilacza awaryjnego dla stacji roboczej.

MG

Tagi: , ,

Polecenie 'forfiles’

1 września, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Bardzo ciężko jest się przyznać do własnej niewiedzy. Jednak czasami trzeba. Ostatnio musiałem się zmierzyć z problemem usuwania logów aplikacji po 14 dniach na serwerze Windows 2008R2. Zadanie dosyś proste jeśli myślimy o środowisku Linuksa. Czy jest tak samo w przypadku Widnows? Rzecz jasna można skorzystać z bibliotek Cygwin, ale tak czy inaczej będzie to forma protezy. Dlatego zabrałem się za przeglądanie Internetu i po chwili, po raz pierwszy, natknąłem się na program/polecenie forfiles. Uruchamiane klasycznie z linii poleceń pozwala zbudować prosty skrypt, który po dodaniu do harmonogramu zadań systemowych będzie czyścił logi. Poniżej przyklad:

forfiles /S /D -14 /P "Dysk:\Log\" /M *.log /C "cmd /c del @file"

Sprawdziłem i działa całkiem dobrze:) Można powiedzieć, że w pewnym sensie Microsoft dostarczył odpowiednik linuksowego polecenia 'find’. Na zakończenie, skrócona lista opcji programu 'forfiles’:

/P nazwa_ścieżki      Wskazuje ścieżkę do rozpoczęcia wyszukiwania.                       
                      Folderem domyślnym jest bieżący katalog                       
                      roboczy (.).

/M maska_wyszukiwania Wyszukuje pliki według maski wyszukiwania.                       
                      Domyślna maska wyszukiwania to '*' .

/S                    Nakazuje poleceniu forfiles przejście do                       
                      podkatalogów. Na przykład: "DIR /S".

/C polecenie          Wskazuje polecenie, które ma być wykonane dla                       
                      każdego pliku. Ciągi polecenia powinny                       
                      być ujęte w cudzysłów.

                      Domyślne polecenie to: "cmd /c echo @file".
                      Następujące zmienne mogą być używane w                        
                      ciągu polecenia:                       
                      @file    - zwraca nazwę pliku.                        
                      @fname   - zwraca nazwę bez                                   
                                 rozszerzenia.                       
                      @ext     - zwraca tylko rozszerzenie                                   
                                 pliku.                       
                      @path    - zwraca pełną ścieżkę pliku.                       
                      @relpath - zwraca ścieżkę względną                                   
                                 pliku.                       
                      @isdir   - zwraca wartość "TRUE" dla katalogu i                                   
                                 "FALSE" dla pliku.                       
                      @fsize   - zwraca rozmiar pliku w bajtach.                       
                      @fdate   - zwraca datę ostatniej modyfikacji                                   
                                 pliku.                       
                      @ftime   - zwraca godzinę ostatniej modyfikacji                                   
                                 pliku.

/D data               Zaznacza pliki z datą ostatniej modyfikacji taką
                      samą lub późniejszą (+) bądź taką samą lub
                      wcześniejszą (-) od określonej daty, korzystając
                      z formatu "yyyy-MM-dd"; zaznacza również pliki 
                      z datą ostatniej modyfikacji taką samą lub
                      późniejszą (+) od bieżącej daty +"dd" dni bądź
                      taką samą lub wcześniejszą (-) od bieżącej daty.
                      Liczba dni "dd" musi być zzakresu 0-32768.
                      Jeżeli nie określono żadnego znaku, domyślnie
                      zostanie użyty znak "+".

MG

Tagi: , , , ,

Automatyczne przesyłanie zawartości skrzynki pocztowej na inne konto z wykorzystaniem Mutt

4 sierpnia, 2012 | Brak Komentarzy | Kategoria: Linux, Porady

Jakiś czas temu spotkałem się z sytuacją, w której znajomy posiadający konto poczty elektronicznej na linuksowym serwerze chciał wszystkie wiadomości przesłać jednym poleceniem na nowe konto na serwerze MS Exchange. Wiem, dla niektórych to mocno niewłaściwy kierunek ale zostałem poproszony o pomoc. Konfiguracja serwerów uniemożliwiała bezpośredni import danych. Pozostały zatem jedynie różne mniej lub bardziej udane obejścia. Długo myślałem rozważając różne możliwości i ponieważ jestem zadeklarowanym zwolennikiem terminala oraz Mutta, postanowiłem wygorzystać jego funkcje. Przyznam, że nie wiedziałem czy jest to wogóle możliwe ale Mutt po raz kolejny pozytwnie mnie zaskoczył.

Po uruchomieniu Mutta z linii poleceń:

mutt -f /path/to/mboxfile

możemy przystąpić od razu do działania. Wykorzystujemy następującą sekwencje klawiszy:

[T][.][enter]

zaznaczając wszystkie wiadomości w skrzynce. Następnie kontynuujemy:

[;][b]

i podajemy adres e-mail, na który chcemy przesłać wiadomości. Po zatwierdzeniu:

[enter]

Mutt prześle wszystkie wiadomości na nowe konto.

Nie ma rzeczy doskonałych. Dlatego i w tym przypadku trzeba wspomnieć, że wiadomości zostaną przekazane na nowe konto z tą samą datą. Jednak nasze cenne dane zostaną skopiowane i zachowane.

MG

Tagi: , , ,

Rola rekordu SRV w konfiguracji MS Exchange

7 lipca, 2012 | Brak Komentarzy | Kategoria: Bez kategorii, Porady, Windows

Microsoft Exchange Server jest obecnie jednym z popularnych serwerów pracy grupowej w firmach. Nie jest to rozwiązanie tanie. Szczególnie jeśli uwzględnimy koszt budowy infrastruktury zgodnie z zaleceniami Microsfotu, koszt licencji dostępowych CAL itd. Tak czy inaczej jeżeli zdecydowaliśmy się już na zakup oprogramowania i nie mamy kilku serwerów do wykorzystania musimy liczyć się z koniecznością gruntownego zabezpieczenia naszego głównego serwera Exchange. Konfiguracja, o której mówie zakłada zainstalowanie 3 głównych ról serwera (Hub Transport Server, Mailbox Server oraz CAS – Client Access Server) na jednym serwerze. W omawianym przypadku nie zajmujemy się serwerem brzegowym (Edge Transport Server).

Ponieważ na wspomnianym serwerze instalujemy usługi dostępowe CAS (w tym dla klientów mobilnych, z poza sieci firmowej) należy zabezpieczyć go wszelkimi możliwymi środkami. Najprostszym i najtańszym rozwiązaniem jest zorganizowanie komunikacji z wykorzystaniem protokołu HTTPS (port 443). Klient poczty Microsoft Outlook posiada możliwość połączenia się z serwerem Exchange za pomocą tandemu RTP over HTTPS. Można zatem łatwo dodać regułę na firewallu firmowym, umożliwiącą komunikację z zewnątrz z serwerem Exchange na porcie 443.

Niestety Outlook wykorzystuje często funkcje autokonfiguracji działającą w oparciu o usługę Autodiscover. W tym miejscu dochodzimy do sedna problemu opisywanego w tym artykule. Jeżeli domena Active Directory (np. corp.firma.com) różni się od domeny internetowej (np. firma.com) to Outlook będzie zasypywał nas komunikatami o błędach. Istnieje wiele sposobów zapobiegania takim sytuacjom. Jednym z najbardziej skutecznych jest wykorzystanie rekordu SVR na zewnętrznych serwerach nazw. W ten sposób Outlook z każdego miejsca w internecie będzie mógł połączyć się z naszym serwerem Exchange. Rekord SRV dla Exchange będzie miał następującą postać (użyłem przykładu dla popularnego serwera bind):

_autodiscover._tcp.firma.com. IN SRV 0 5 443 server.corp.firma.com.

Musimy jeszcze pamiętać o rekordzie A dla domeny z przykładu – firma.com:

server.corp IN A 1.2.3.4

Takie rozwiązanie pozwoli uniknąć w przyszłości chóru narzekających użytkowników. I o to w zasadzie w tym wszystkim chodzi…

MG

Tagi: , , ,

Jednorazowe korzystanie z Proxy podczas aktualizacji

2 czerwca, 2012 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, Porady

Jednym z wielu zadań należących do administratora systemu Linux Debian jest wykonywanie aktualizacji. Funkcjonuje nawet anegdota, że użytkownika Debiana można rozpoznać po tym, iż każdy dzień rozpoczyna od komendy:

apt-get update

Tak czy inaczej czasami zdarza się, że aktualizacje ciągną się w nieskończoność a szybkość połączenia pozostawia wiele do życzenia. Nie są to niestety sporadyczne przypadki. Dodatkowo jeżeli mamy do czynienia z kilkoma serwerami w sieci, które powinniśmy zaktualizować sytuacja może być irytująca. Rozwiązaniem w tym przypadku jest serwer proxy. Co zrobić jednak, gdy chcemy z niego skorzystać tylko jednorazowo na czas aktualizacji? Rozwiązanie jest bardzo proste i wymaga jedynie dostępu do konsoli. Wydajemy polecenie:

http_proxy='http://adres_serwera_proxy:port'

co pozwoli nam na wykorzystanie proxy ad-hoc bez rekonfiguracji ustawień systemowych.

MG

 

Tagi: , ,

Termometr IP dla ochrony serwerowni – część II

5 maja, 2012 | Brak Komentarzy | Kategoria: Bez kategorii, Porady, Windows

Jakiś czas temu opisywałem rozwiązanie polegające na zdalnym pomiarze parametrów pracy pomieszczenia (np. serwerowni). Przez ten czas zmieniła się konfiguracja obserwowanej serwerowni i pojawiły się nowe urządzenia. Pomyślałem zatem o scentralizowanym rozwiązaniu, które umożliwi obserwacje stanu większej ilości czujników a przy tym pozwoli na generację alarmów w sytuacjach krytycznych. Konfigurowanie pojedynczo każdego nowego czujnika IP jest pracochłonne i nie daje możliwości budowania złożonych akcji (alarmów), które polegają na analizie stanu kilku czujników.

Producent termometru IP udostępnił na swojej stronie darmową wersję aplikacji Wix, która umożliwia m.in.

  • obserwację pomiarów z kilku urządzeń
  • wykreślanie historii pomiarów
  • budowanie akcji z prostą logiką warunków
  • wysyłanie wiadomości alarmowych via e-mail, SMS

W tej wersji aplikacja Wix nie jest być może szczególnie zaawansowana ale oferowała funkcjonalność, której poszukiwałem. Jeśli ktoś poszukuje lekkiego i prostego w konfiguracji rozwiązania można ją śmiało polecić. Dla bardziej wymagających pozostaje zabawa z oprogramowaniem urządzeń firmy Papouch za pomocą API udostępnionego na stronie producenta.

MG

Tagi: ,

Jak dodać obsługę SVN do XAMPPa

7 kwietnia, 2012 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, Porady

XAMPP jest bardzo wygodnym zestawem typu Apache+PHP+MySQL. Moim zdaniem jego przewaga nad podobnymi rozwiązaniami wynika z dopracowanego projektu oraz możliwości instalacji przez rozpakowanie archiwum do katalogu '/opt’. Wykonywanie kopii zapasowych oraz przenoszenie całego serwisu z serwera na serwer jest również bardzo proste, wystarczy bowiem zatrzymać usługę, zrobić kopię (np. za pomocą tar) i przenieść na inny komputer.

XAMPP nie jest jednak pozbawiony drobnych wad. Jedną z nich jest brak wbudowanej obsługi systemu kontroli wersji SVN. Taka właściwość jest bardzo przydatna jeśli chcemy utworzyć np. repozytorium dokumentów za pomocą WebDAV (odpowiedni moduł jest standardowo wbudowany w XAMPP).

Instalację SVN zaczynamy od instalacji odpowiednich pakietów z repozytorium:

apt-get install subversion libapache2-svn

Następnie przygotowywujemy katalog dla repozytorium SVN np. '/var/svn’:

mkdir /var/svn/

Zakładamy pzrykładowy projekt o nazwie test:

svnadmin create --fs-type fsfs /var/svn/test

Potem dodajemy użytkownika (np. marcin) z uprawnieniami do naszego projektu. Dwa pierwsze wiersze kodu poniżej wykonujemy jednorazowo:

rm -f /var/svn/test/conf/passwd
touch /var/svn/test/conf/passwd
htpasswd /var/svn/test/conf/passwd marcin

Tworzymy grupę subversion i ustawiamy uprawnienia dla katalogu '/svn’:

groupadd subversion
chmod -R 777 /var/svn/*

Żeby XAMPP mógł obsłużyć SVN konieczne są dwie biblioteki mod_authz_svn.so oraz mod_dav_svn.so. Możemy je np. skopiować z katalogu Apache, pod warunkiem, że zainstalowaliśmy wcześniej pakiet apache2:

cp /usr/lib/apache2/modules/mod_authz_svn.so /opt/lampp/modules/
cp /usr/lib/apache2/modules/mod_dav_svn.so /opt/lampp/modules/

Teraz możemy wyedytować plik '/opt/lampp/etc/httpd.conf”, żeby najpierw pod linią zawierającą wpis LoadModule ssl_module modules/mod_ssl.so umieścić fragment:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

a następnie na końcu pliku dodać:

# Subversion repositories

<Location /test>
DAV svn
SVNPath /var/svn/test
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /var/svn/test/conf/passwd
Require valid-user
SSLRequireSSL
</Location>

Po zatrzymaniu i ponownym uruchomieniu XAMPPa, możemy rozpocząć testowanie opisanego rozwiązania.

MG

Tagi: , ,

Laptop DELL, MS Windows, Office 2010 64-bit i problemy

3 marca, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Tym razem krótki i raczej humorystyczny wpis. Ta wiedza może uchronić Cię przed godzinami spędzonymi w poszukiwaniu rozwiązania. Rzecz dotyczy laptopów marki Dell z zainstalowanymi Windowsami w wersji 64-bitowej i pakietu MS Office 2010 64-bit. Jak się okazuje MS Word (w takiej konfiguracji) po pewnym czasie odmawia posłuszeństwa. Obajwy są dość nietypowe. Nie może otworzyć dokumentu, zawiesza się a następnie proponuje tryb awaryjny. Po naprawieniu problemu w trybie awaryjnym sytuacja powtarza się od nowa. W tym miejscu chylę czoła przed użytkownikami, którzy wpadli na to, że należy wyłączyć wtyczkę obsługującą połączenie Bluetooth – 'Opcje programu Word/Dodatki’. Krótko i na temat. Do tej pory nie mogę się otrząsnąć.

🙂

MG

Tagi: ,

NOCC – następca Webimiau

4 lutego, 2012 | Brak Komentarzy | Kategoria: Linux

Posiadanie własnego systemu webmail lub inaczej mówiąc klienta poczty zainstalowanego na serwerze WWW jest z wielu powodów przydatną rzeczą. Rzecz jasna mamy wiele gotowych rozwiązań takich jak Gmail czy Yahoo Mail lub OWA dla posiadaczy serwera MS Exchange. Jeśli jednak chcemy przygotować rozwiązanie wyłącznie dla swoich (lub firmy) potrzeb i nie chcemy poświęcać dużo czasu na jego konfigurację a mamy już zainstalowany serwer protokołu POP3 lub IMAP to znalezienie dobrego, lekkiego rozwiązania, które w dodatku może zostać zainstalowane praktycznie wszędzie (nie tylko na serwerze poczty jak np. SquirrelMail) staje się małym wyzwaniem.

Moim ulubioną aplikacją do tej pory był Uebimiau. Niestety wydaje się, że projekt został porzucony lub przynajmniej nie jest rozwijany. A szkoda, bowiem był na prawdę prosty w konfiguracji i oferował elegancki interfejs (co dla mnie jest ważne).

Za jego następcę, biorąc pod uwagę łatwość i szybkość wdrożenia, można obecnie uznać projekt NOCC. Ta ciągle rozwijająca się aplikacja posiada minimalne wymagania. W zasadzie wystarczy serwer WWW np. Apache z zainstalowanym PHP w wersji 5.0.0 lub nowszej. Baza danych nie jest potrzebna w tym przypadku. Trochę surowy interfejs całkowicie rekompensuje konfiguracja za pomocą pliku 'config/conf.php’, która została przejrzyście udokumentowana. Jedyny błąd jaki znalazłem związany był z nieprawidłowym spolsczeniem interfejsu. Usterkę tą można łatwo naprawić usuwając z pliku 'config/conf_lang.php’ poniższą sekcję:

// Pashto
$lang_array[$i] = new lang();
$lang_array[$i]->filename = 'ps';
$lang_array[$i]->label = 'پښتو';

 

Podobno błąd dotyczy wersji 1.9.1, jednak w poprzednich wersjach również występuje (co osobiście sprawdziłem).

MG

Tagi: , ,