Linux: Skryptowanie w BASH – kurs z podręcznikiem PDF – promocja

2021-09-07

Oto nasz nowy kurs: Administrator Linux: Skryptowanie w BASH.

Dlaczego ten temat?

  1. Bo to właśnie skryptowanie pozwala na automatyzację pracy administratora, więc w końcowym efekcie odciąża go od pracy
  2. Bo BASH, mimo iż powstał wiele lat temu, do dzisiaj właściwie niewiele się zmieił
  3. Bo BASH lub jemu podobne shelle występują w najnowszych rozwiązaniach chmurowych
  4. Bo automatyzajca w połączeniu  ze standaryzacją pozwala jednemu administratorowi zarządzać nie kilkoma serwerami. ale setkami i tysiącami serwerów

W tym kursie:

  • nauczysz się automatyzować pracę administratora
  • programowanie w BASHu rozpoczniesz od podstaw
  • zobaczysz zastosowanie skryptów na praktycznych przykładach
  • dzięku dołączonemu podręcznikowi PDF z notatką i zadaniami będziesz w stanie samodzielnie i w kontrolowany sposób samodzielnie pisać skrypty – już od pierwszych lekcji

Jeśli temat wydaje Ci sie ciekawy, to od 8 do 12 września 2021 możesz kupić ten kurs w promocyjnej premierowej cenie korzystając z kuponu TERAZBASH. Zresztą kupon zadziała tez na pozostałe nasze kursy – pełna lista w profilu autora: Rafał Mobilo | Microsoft Certified Trainer | Udemy

By Rafał Kraik in Aktualności

SQL: Skrypt zmieniający i przywracający konfigurację

2021-08-13

Zaawansowane skrypty muszą czasami skorzystać z opcji zapisanych w tabeli sys.configurations. Te zmiany wykonuje się procedurą sp_configure. Co istotne, jeśli przed uruchomieniem skryptu jakaś opcja była wyłączona (lub włączona), to po zakończeniu tego skryptu ta opcja powinna być w tym samym nie zmienionym stanie.

Oto propozycja takiego rozwiązania:

 

By Rafał Kraik in SQL

Windows: wyszukiwanie w event log (dziennik zdarzeń)

2021-08-13

Event log to… „wielki śmietnik” pełen mnóstwa ciekawych informacji. Problemem jest tylko wygrzebanie istotnej informacji.

Potrzebowałem np. sprawdzić, kto logował się interaktywnie do sysytemu w ciągu ostatnich 24 godzin. W tym celu stworzyłem „Custom View”, a w nim zbudowałem warunki filtrujące. To nie było trudne, bo event id dla zdarzenia logowanie to 4624. Problem tylko w tym, że w tym zdarzeniu, w EventData znajduje się pole Logon Type i za logowanie interaktywne odpowiada Logon Type równy 3. Ponieważ jednak każde zdarzenie ma nieco inne właściwości, to nie można wybrać Logon Type w kreatorze.

Na szczęście Event Viewer bazuje na XML i można zbudować w edytorze swoje własne zapytanie, które u mnie wyglądało mniej więcej tak:

Wprawdzie po modyfikacji XML traci się możliwość wyklikiwania w tym widoku czegokolwiek z poziomu kreatora, ale to na tyle proste sprawy, że ponowne wyklikanie idzie dość szybko.

Osobiście jednak preferuję skrypt, każdorazowe klikanie, wklejanie XML, to nie dla mnie.

Można więc włożyć powyższy XML do cmdletu Get-WinEvent i …. gotowe. W przykładzie poniżej wybieram tylko 3 ostatnie logowania, ale śmiało można brać wszystkie:

By Rafał Kraik in Power Shell

Sieć: Jak sprawdzić czy port jest otwarty

2021-08-02

Zacznijmy od tego, co to znaczy, że port jest otwarty? Dla mnie to sytuacja kiedy jestem w stanie podłączyć sie z zewnątrz do usługi nasłuchującej na tym porcie. Ponieważ port można zamykać lub odfiltrowywać na różnym poziomie (lokalny firewall, firewall na routerze itp.), to właściwie pytanie należałoby doprezycować. Czy port jest otwarty dla połączenia przychodzącego z x.y.z?

Dlatego nic lepiej nie sprawdzi otwartości portu, jak bezpośrednie połączenie z wybranej zewnętrznej maszyny.

Dla Windows:

W powershellu wykonaj

Dla Linux/Unix

W shellu wykonaj:

Jeśli telnet byłby niedostępny skorzystaj z nmap lub zainstaluj telneta

 

By Rafał Kraik in Helpdesk

PostgreSQL: FATAL: the database system is in recovery mode

2021-07-18

No i co tu poradzić? Połączenia do bazy danych czasami się udają, ale nawet wtedy po krótkiej chwili sesja jest zabijana i można znaleźć komunikaty

Zwykle pierwszym dobrym krokiem, kiedy chce się zobaczyć coś więcej od środka, jest analiza zapisów w logu systemowym. Znajdziesz je w /var/lib/edb/as13/data/logs. Log pełen był zapisów w postaci: Czytaj dalej »

By Rafał Kraik in PostgreSQL

PostgreSQL: Niegrzeczni użytkownicy – kończenie sesji

2021-07-04

Na każdym systemie są dobrzy admini i źli użytkownicy. Użytkownicy (bo przecież nie admini) mogą uruchomić polecenie, które zablokuje innych użytkowników lub skonsumuje zbyt wiele zasobów. Co w takim przypadku robić?

  1. Zidentyfikuj użytkownika – rozbójnika

Czasami identyfikacja nie jest łatwa, ale jeśli np. źródłem informacji o awarii jest przeciążony procesor, to taką identyfikację można rozpocząć na poziomie OS. Wyszukaj po prostu procesu, który konsumuje dużo CPU. Mająć PID procesu, można odszukać połączenie po stronie PG:

Tak dowiesz się między innymi, kiedy rozpoczęło się połączenie, transakcja, ostatnie zapytanie. Zobaczysz stan transakcji (np „idle transaction”, czyli w trakcie transakcji użytkownik poszedł na kawę), aplikację, serwer, nazwę użyszkodnika itp.

2. Spróbuj zakończyć aktualnie wykonywane zadanie

Jeśli przyczyną problemów jest intensywnie pracujące zapytanie, to można spróbować brutalnie je przerwać. Nie spowoduje to rozłączenia użytkownika:

3. Zamknij połączenie/sesję

Jeśli problem nadal występuje (np. użytkownik już nic nie robi, ale wcześniej założone blokady nadal uniemożliwiają pracę innym użytkownikom), to przerwij sesję zwalniając wszystkie zarezerwowane dla niej zasoby:

Jeśli tylko użyszkodnik został poprawnie zidentyfikowany w kroku (1), to ostatnie polecenie pomoże. Jeśli nie pomogło, to… no cóż… zabiliśmy kogoś innego przez pomyłkę… sorry

 

By Rafał Kraik in PostgreSQL

PostgreSQL: Instalacja PEM

2021-07-01

Zakładając, że PEM został zainstalowany już podczas wstępnej instalacji EDB, to w celu uruchomienia tego narzędzia wystarczy uruchomić skrypt konfiguracyjny:

Skrypt grzecznie pyta o wszelkie opcje konfiguracyjne. Na moim testowym serwerze wyglądało to tak: Czytaj dalej »

By Rafał Kraik in PostgreSQL