Linux: Bash: uniq – unikalne czy nieunikalne czy co…?

2021-10-17

Jest sobie w shellu polecenie uniq. Zgodnie z opisem w man:

Wydawałoby się więc, że przesłanie wyniku polecenia, które generuje jakieś tam wiersze danych, powinno zwrócić tylko unikalne dane. Np.

zwraca informacje o skonfigurowanych shellach dla kilku początkowych użytkowników z pliku /etc/passwd. (Screen poniżej)

Kiedy prześlemy dane do uniq, to wydaje sie, że wynikiem powinny być unikalne shelle:

Jednak tak nie jest. Dlaczego? Wystarczy zajrzeć do man-a ponownie, a tam stoi jak byk:

kluczowe słowo to „adjacent” – 2 linijki zostaną potraktowane jako dublujące się, gdy stoją obok siebie. Jeśli między nimi jest jakaś inna linijka, to uniq nie usunie powtarzającej się kopii, no chyba że…. użyjesz opcji -u:

Wszystko to widać ładnie na obrazku poniżej:

 

By Rafał Kraik in Linuxy

Windows: Webex: Komunikat o braku domyślnego programu pocztowego

2021-10-14

Masz sobie Webexa, z jego wszystkimi funkcjami integrującymi np. kalendarz Outlooka z harmonogramem spotkań. Outlook jest w ustawieniach Windowsa ustawiony jako domyślny. Niestety, kiedy Webex startuje, narzeka na brak programu domyślnego. O co chodzi!?

Podejrzewam, że to kwestia niekończących się zmian w Windows. Wskutek tego Webex sprawdza program domyślny tam, gdzie Outlook go nie wpisuje.

Na szczęście łatwo to poprawić.

  • Otwórz rejestr (regedit.exe) – jak zwykle zachowaj ostrożność, bo łatwo coś uszkodzić
  • W rejestrze poszukaj ścieżki

  • Tutaj znajdziesz klucz Default. Pewnie będzie pusty. Kliknij go i wpisz

  • Zrestartuj Webexa i powinno już wszystko być OK 🙂

By Rafał Kraik in Helpdesk

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