Skip to content

Pasja Informatyki

Zapiski devopsa

Motion. Detekcja ruchu i wysyłanie zdjęcia wykrytego obiektu na wybrany adres e-mail.

Posted on 5 marca 20233 czerwca 2023 By Mariusz Brak komentarzy do Motion. Detekcja ruchu i wysyłanie zdjęcia wykrytego obiektu na wybrany adres e-mail.

Dla ułatwienia sobie pracy załączmy sobie uprawnienia roota:

sudo su

Następnie zaktualizujmy repozytoria i paczki zainstalowanego oprogramowania na naszym Raspberry Pi:

apt update
apt upgrade

Teraz zainstalujmy pakiet motion:

apt install motion

Oraz zainicjujemy wsparcie dla naszej kamery (oryginalny moduł kamery dla Raspberry Pi):

modprobe bcm2835-v4l2

Zakładam, że pakiet motion został poprwnie zainstalowany, jak również podłączona kamera jest poprawnie rozpoznawana przez system. Sprawdźmy to za pomocą polecenia:

ls /dev/video*

W odpowiedzi powinniśmy otrzymać listę dostępnych w systemie urządzeń video:

Przed uruchomieniem pakietu motion należy zmodyfikować plik konfiguracyjny:

nano /etc/motion/motion.conf

W pierwszej kolejności trzeba wskazać oprogramowaniu motion właściwe urządzenie, które ma wykorzystać. W naszym przypadku będzie to urządzenie /dev/video0 zatem odszukujemy odpowiednią sekcję pliku konfiguracyjnego i w razie potrzeby modyfikujemy zawartość:

# Video device (e.g. /dev/video0) to be used for capturing.
videodevice /dev/video0

Na końcu zezwalamy na podłączenie się do streamu z kamery dowolnej maszynie w sieci LAN: wartość zmiennej stream_localhost zmieniamy z on na off :

# Restrict stream connections to the localhost.
stream_localhost off

oraz ustawiamy odpowiadający mi port, na którym pakiet motion wystawi screen z kamery do sieci LAN:

# The port number for the live stream.
stream_port 8081

Po zapisaniu zmian w pliku konfiguracyjnym uruchamiamy pakiet motion:

motion

W odpowiedzi powinniśmy otrzymać informacje jak niżej:

Od tego momentu za pomocą dowolnego komputera w obrębie tej samej sieci LAN i przeglądarki internetowej możemy włączyć podgląd obrazu zwracanego przez kamerę. W tym celu wpisujemy w przeglądarkę adres IP naszego Raspberry Pi (w moim przypadku: 192.168.56.7) wskazując port na którym pakiet motion wystawił srteam z kamery (w moim przypadku 8081).

http://192.168.56.7:8081/

Po zatwierdzeniu wpisanego adresu przeglądarka odtworzy stream z kamery:

Kolejnym krokiem będzie detekcja ruchu oraz zapis 10 klatek poruszającego się obiektu do obrazów .jpg w wybranym katalogu na karcie pamięci Raspberry Pi.

Na tym etapie zatrzymujemy uruchomiony wcześniej pakiet motion za pomocą skrutu klawiszowego Ctrl+X i skonfigurujmy jeszcze kilka rzeczy w pliku ustawień:

nano /etc/motion/motion.conf

Wskazanie katalogu do którego będą zapisywane przechwycone klatki poruszającego się obiektu:

# Target directory for pictures, snapshots and movies
target_dir /home/mariusz/motion/pictures/

Liczba klatek, która ma zostać przechwycona w ciągu sekundy:

# Maximum number of frames to be captured per second.
framerate 2
stream_maxrate 2

Włączenie zaznaczania poruszającego się obiektu za pomocą czerwonego prostokąta, dzięki czemu, będziemy mieli pewność, który obiekt spowodował detekcję ruchu. Będziemy również w stanie odróżnić klatki poprzedzające wykrycie ruchu od tych, na których ruchu nie wykryto, co dodatkowo ułatwi nam ocenę poprawności konfiguracji całego rozwiązania:

locate_motion_mode on
locate_motion_style redbox

Na czułość detekcji ruchu możemy wpłynąć poprzez zadeklarowanie liczby pojedynczych pikseli, które muszą się zmienić na przechwyconym obrazie, by wygenerować zdarzenie wykrycia ruchu:

# Threshold for number of changed pixels that triggers motion.
threshold 1500

Warto założyć jakiś minimalny poziom dopuszczalnego stałego ruchu pikseli w obrazie:

# Noise threshold for the motion detection.
noise_level 100

oraz zdefiniować wymaganą liczbę kolejno występujących po sobie ramek, na których wykryto „ruch”, celem eliminacji fałszywych alarmów na podstawie przetworzenia uszkodzonych klatek:

# Number of images that must contain motion to trigger an event.
minimum_motion_frames 3

Chwilę początkową wystąpienia detekcji ruchu zdefiniowaliśmy powyżej. Teraz wypadałoby zdefiniować moment, który motion zinterpretuje jako koniec występowania ruchu.

Pozostawimy domyślnie ustawioną wartość 60 sekund, ponieważ taki chcielibyśmy uzyskać interwał czasu pomiędzy kolejno wysyłanymi wiadomościami e-mail:

# Gap in seconds of no motion detected that triggers the end of an event.
event_gap 60

Warto również ustawić bufor kilku klatek poprzedzających moment wykrycia ruchu, które zostaną doklejone do serii zdjęć pokazujących całe zdarzenie. Te kilka obrazów poprzedzających samo wykrycie ruchu potrafi mieć kluczowe znaczenie dla poprawnej interpretacji zaistniałych wydarzeń.

# The number of pre-captured (buffered) pictures from before motion.
pre_capture 3

Doklejanie klatek po ustaniu ruchu, wydaje się nie mieć już większego znaczenia, zatem nie skonfigurujemy takiego zachowania.

Oprogramowanie motion pozwala wykonać dowolny skrypt użytkownika i to na różnym etapie trwania rejestracji całego zdarzenia. Ponieważ chcemy jak najszybciej wysłać maila z informacją o wykryciu ruchu, niech triggerem naszego skryptu (plik notify.sh w lokalizacji /home/mariusz/motion/scripts/ stworzymy później) będzie moment wykrycia ruchu (początek zdarzenia):

# Command to be executed when an event starts.
on_event_start /home/mariusz/motion/scripts/notify.sh

Innymi słowy, nie będziemy czekać na zakończenie zdarzenia, gdyż może ono trwać bardzo długo. Zamiast tego odczekamy kilka sekund by zebrało się kilka zdjęć, a następnie wyślemy je na docelowy adres mailowy, niezależnie od tego, czy „ruch” wciąż ma miejsce, czy może całe zdarzenie już się zakończyło.

Kluczową rzeczą dla realizacji naszych potrzeb jest załączenie zapisywania pojedynczych klatek po wykryciu ruchu w postaci obrazów:

# Output pictures when motion is detected
picture_output on

Obrazy te będą, za pomocą odpowiedniego skryptu, dołączone jako załącznik do maila z powiadomieniem.

Warto również zdefiniować rozsądne nazewnictwo tworzonych plików:

# File name(without extension) for pictures relative to target directory
picture_filename %Y.%m.%d-%H.%M.%S-%q

Z uwagi na zadanie do realizacji (wysyłanie powiadomienia mailowego z załącznikiem w postaci obrazów nieruchomych) wyłączymy tworzenie nagrań video (nie będą nam do niczego potrzebne):

# Create movies of motion events.
movie_output off

Teraz potrzebujemy zadbać o możliwość wysyłania maili z poziomu konsoli, a zatem także z poziomu skryptów powłoki bash.

By pominąć problemy z utrzymaniem własnego serwera poczty e-mail na tzw. białych listach dostawców internetowych (karkołomne zadanie) zamiast uruchamiania własnego serwera poczty, utworzymy darmowe konto pocztowe w serwisie interia.pl, a na RPi zainstalujemy paczkę sSMTP, która będzie wysyłała wiadomość e-mail z lokalnego komputera za pomocą skrzynki pocztowej założonej na Interii. Dodatkowo paczka mutt pomoże nam w dołączaniu do maila załączników w postaci plików .jpg.

W pierwszej kolejności zakładamy nową skrzynkę mailową wchodząc na link: https://konto-pocztowe.interia.pl/#/nowe-konto/darmowe. Po utworzeniu darmowej skrzynki pocztowej i zalogowaniu się do poczty: https://poczta.interia.pl/logowanie/ w panelu ustawień koniecznie załączamy możliwość logowania się do poczty z zewnętrznych programów pocztowych: https://ustawienia-pocztowe.interia.pl/#/poczta-parametry

Tak skonfigurowana poczta Interii jest już gotowa do obsługi za pomocą zewnętrznego klienta poczty e-mail (sSMTP, mutt).

Pora zainstalować parę sSMTP i mutt. Zakładając, że wciąż działamy na prawach administratora wykonujemy:

apt update
apt upgrade
apt install ssmtp mutt

Po zainstalowaniu pakietów, w katalogu domowym roota tworzymy katalog .mutt a w nim tworzymy plik konfiguracyjny .muttrc:

mkdir /root/.mutt/
nano /root/.mutt/muttrc

Do pliku wklejamy zawartość, jak poniżej, pamiętając o wcześniejszej podmianie nazwy użytkownika i hasła zgodnie z takimi, jakie zastosowaliśmy podczas tworzenia nowej skrzynki pocztowej.

set edit_headers = yes
set imap_user = "nasza.nazwa@interia.pl"
set imap_pass = "nasze.haslo"
set smtp_url = "smtp://nasza.nazwa@poczta.interia.pl:587/"
set smtp_pass = "nasze.haslo"
set from = "nasza.nazwa@interia.pl"
set realname = "nasza.nazwa@interia.pl"
set folder = "imaps://poczta.interia.pl:993"
set spoolfile = "+INBOX"
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates
set move = no

Po zapisaniu ustawień sprawdzimy, czy mutt będzie w stanie poprawnie zalogować się do naszej skrzynki. W tym celu wykonujemy polecenie:

mutt

Jeśli naszym oczom ukarze się plansza klienta poczty to oznacza to, że poczta została skonfigurowana poprawnie i jest gotowa do pracy:

Jako, że maile będziemy wysyłać za pośrednictwem konsoli i skryptów bash, opuśćmy naszego klienta używając przycisku q.

Nadszedł czas na przetestowanie wysyłki maila z konsoli. Można go przeprowadzić wydając polecenie:

test | EMAIL="nasza.nazwa@interia.pl" mutt -s "temat" jakis.adres@docelowy.com

Po kilku chwilach na nasz docelowy adres mailowy powinna dotrzeć wysłana przez nas wiadomość.

W lokalizacji /home/mariusz/motion/pictures prawdopodobnie znajduje się już kilka klatek zapisanych przez motion do obrazków w formacie .jpg (dobrze byłoby zostawić tylko kilka, bo za chwilę będziemy chcieli wysłać je wszystkie za pomocą poczty e-mail).

Spróbujmy zatem wysłać treść maila z szablonu z załączonymi plikami .jpg, posługując się poleceniem:

test | EMAIL="nasza.nazwa@interia.pl" mutt -s "temat" jakis.adres@docelowy.com -a /home/mariusz/motion/pictures/*.jpg

Jeśli nie popełniliśmy żadnago błędu, na docelową skrzynkę mailową trafi mail w postaci:

Na tym etapie pozostanie już tylko napisanie skryptu notify.sh w lokalizacji /home/mariusz/motion/scripts/, który już wcześniej przypisaliśmy do zmiennej on_event_start programu motion.

Otwieramy / tworzymy zatem plik skryptu:

nano /home/mariusz/motion/scripts/notify.sh

i umieszczamy w nim przykładowy kod, pamiętając o wprowadzeniu poprawnej ścieżki do plików oraz docelowego adresu e-mail dla powiadomień:

#!/bin/bash

#Script config section (do not mofify if you are not sure what you are doing)
timestamp=`date +%Y.%m.%d-%T`
date=`date +%Y.%m.%d`
installation_patch=/home/mariusz/motion
log_directory=$installation_patch/log/
log_file=$date.log
last_notifocation=$installation_patch/log/last_notification
pictures_directory=$installation_patch/pictures/


#e-mail config section (feel free to modify)
email_source=nasza.nazwa@interia.pl
email_target=jakis.adres@docelowy.com
email_title=$timestamp
email_attachment_patch=$pictures_directory*.jpg

#e-mail messages config section (feelfree to modify)
email_message_motion_notification="Notification about motion detected"
email_message_missing_patch="The system needs your attention: The patch is missing: "
email_message_missing_pictures="The system needs your attention: There is no any pictures to send. The pictures directory is empty: "

#log_messages (feel free to modify)
Preparing_to_send_notification="Preparing to send notification"
Pictures_to_be_sent="Pictures to be sent:"
Waiting_for_pictures="Waiting for pictures..."
Task_finished_successfully="Task finished successfully"
Old_pictures_has_been_removed="Old pictures has been removed"
Spacer="----------------------------------------------------"


#Script body (do not change anything below)

# Check for log directory presence
if [ ! -d $log_directory ]
 then
  echo "$email_message_missing_patch $log_directory" | EMAIL=$email_source mutt -s $email_title $email_target
fi

# Check for pictures directory presence
if [ ! -d $pictures_directory ]
 then
  echo "$timestamp - $email_message_missing_patch $pictures_directory" >> $log_directory$log_file
  echo $Spacer >> $log_directory$log_file
  echo "$email_message_missing_patch $pictures_directory" | EMAIL=$email_source mutt -s $email_title $email_target
fi

# Collecting pictures (waiting for the pictures)
echo "$timestamp - $Waiting_for_pictures" >> $log_directory$log_file
sleep 5

# Check for any pictures presence
files=($pictures_directory*)

if [ ! ${#files[@]} -gt 1 ]
 then
 echo "$timestamp - $email_message_missing_pictures $pictures_directory" >> $log_directory$log_file
 echo $Spacer >> $log_directory$log_file
 echo "$email_message_missing_pictures $pictures_directory" | EMAIL=$email_source mutt -s $email_title $email_target
fi


# If everything is OK send the pictures via e-mail

this_notofocation=`date +%Y-%m-%d-%H:%M`
previous_notofocation=$(<$last_notifocation)

#echo "Obecna notyfikacja: $this_notofocation"
#echo "Poprzednia notyfikacja: $previous_notofocation"

if [ -d $log_directory ] && [ -d $pictures_directory ] && [ ${#files[@]} -gt 1 ] && [ ! $this_notofocation == $previous_notofocation ]
 then
	echo "$timestamp - $Preparing_to_send_notification" >> $log_directory$log_file
	echo "$timestamp - $Pictures_to_be_sent" >> $log_directory$log_file
	ls $pictures_directory >> $log_directory$log_file
	echo $email_message_motion_notification | EMAIL=$email_source mutt -s $email_title $email_target -a $email_attachment_patch
	echo "$timestamp - $Task_finished_successfully" >> $log_directory$log_file

	rm $pictures_directory*
	echo "$timestamp - $Old_pictures_has_been_removed" >> $log_directory$log_file
        echo $Spacer >> $log_directory$log_file
        date '+%Y-%m-%d-%H:%M' > $last_notifocation
fi

Jeśli po uruchomieniu paczki motion bezpośrednio w konsoli wszystko działa poprawnie przyszedł moment by zadbać o to by motion startował automatycznie wraz z uruchomieniem platformy sprzętowej.

Przed przystąpieniem do wystartowania usługi, warto zadbać o właściwe uprawnienia do plików i lokalizacji:

chown motion /var/log/motion/motion.log
chown -R motion /home/mariusz/motion/

Po wykonaniu powyższych poleceń pozostaje spróbować uruchomić pakiet motion jako usługę:

sudo systemctl start motion

System powinien zacząć działać poprawnie. Dioda LED na kamerze powinna świecić cały czas. Gdyby jednak pi kilku sekundach się wyłączyła, będzie to oznaczało, że działanie pakietu zostało zakończone. Wówczas przyczyn warto poszukać w logach pakietu motion:

cat /var/log/motion/motion.log

Pomocne strony:

  • https://forbot.pl/blog/kurs-raspberry-pi-kamera-zdjecia-transmisja-id24480

Motion

Masowe układanie plików do katalogów po dacie utworzenia pliku. Organizacja zdjęć (i filmów) zgranych z aparatu, smartfona.

Posted on 31 grudnia 202131 grudnia 2021 By Mariusz Brak komentarzy do Masowe układanie plików do katalogów po dacie utworzenia pliku. Organizacja zdjęć (i filmów) zgranych z aparatu, smartfona.

Ponieważ zarówno cyfrowe aparaty fotograficzne jak i ich odpowiedniki zintegrowane w smartfonach domyślnie nie umożliwiają umieszczania zdjęć w katalogach z datą wykonania zdjęcia, po zgraniu wszystkich zdjęć z karty pamięci otrzymamy pojedynczy katalog zawierający setki, jeśli nie tysiące plików, zdjęć i filmów w żaden sposób nie posortowanych. Jeden wielki miszmasz.

Pozostaje układać je ręcznie na podstawie daty generacji pliku (ręczne tworzenie katalogów z datą w nazwie) a następnie (znów ręcznie) przenosić zdjęcia i / lub filmy do odpowiednich katalogów.

By uwolnić się od tak żmudnej, irytującej wręcz czynności, można posłużyć się programem Total Commander korzystając z wbudowanego weń narzędzia wielokrotnej zamiany . Znajdując się w katalogu z nieposortowanymi zdjęciami i / lub filmami zaimpotrowanymi ze smartfona wystarczy używając skrótu klawiaturowego Ctrl+A lub +, ENTER zaznaczyć wszystkie znajdujące się tam pliki a następnie użyć matrycy zmiany w postaci ciągu znaków (bez spacji):

[Y]-[M]-[D]\[N]

Po użyciu przycisku Start! niemal natychmiast wszystkie uprzednio zaznaczone pliki zostaną powkładane do katalogów stanowiących datę stworzenia danego pliku (wykonania zdjęcia / filmu).

Sytuacja przed użyciem przycisku Start!:

Sytuacja po użyciu przycisku Start!:

Tak przygotowanym katalogom, po pobieżnym przejrzeniu ich zawartości można dopisać kilka słów opisujących fotografowane / nagrywane wydarzenie.

Szczerze polecam.

Higiena organizacji katalogów i plików, NAS, Samba

Dostęp do serwera plików z poziomu smartfona (Android)

Posted on 30 grudnia 202130 grudnia 2021 By Mariusz Brak komentarzy do Dostęp do serwera plików z poziomu smartfona (Android)

Do plików (np. multimediów) znajdujących się na serwerze plików (Samba) nie dostaniemy się bezpośrednio z systemu Android. Możemy natomiast zainstalować jedną z wielu aplikacji zapewniających taki dostęp. Polecam jedną z potężniejszych tego typu aplikacji: X-plore.

Aplikację X-plore możemy zainstalować wprost ze sklepu Googla Play:

https://play.google.com/store/apps/details?id=com.lonelycatgames.Xplore&hl=pl&gl=pl

Po zainstalowaniu i uruchomieniu aplikacji X-plore w głównym jej oknie odnajdujemy pozycję LAN:


Następnie rozwijamy tę pozycję klikając w niebieski trójkąt jak na screenie poniżej:


Po rozwinięciu wspomnianej listy odnajdujemy pozycję Dodaj serwer oraz konfigurujemy zgodnie z danymi (adres serwera, nazwa zasobu, nazwa użytkownika oraz hasło użytkownika).

Załóżmy, że adres naszego serwera Samby, dostępnego w obrębie naszej sieci LAN to: 192.168.7.41 a udostępniony zasób to Rozrywka. Dane logowania będą indywidualne dla każdego użytkownika, na potrzeby artykułu, przyjmijmy, że są to: nazwa użytkownika: nazwa-uzytkownika a obowiązujące hasło: haslo-uzytkownika.

Dla powyższego przykładu kartę dodawanego serwera konfigurujemy w następujący sposób:


W celu zatwierdzenia wprowadzonych danych klikamy w pole ZAPISZ.


Od tej pory na liście serwerów dostępny jest uprzednio wprowadzony zasób:

Po kliknięciu w ten zasób na liście LAN, uzyskamy dostęp do katalogów i plików znajdujących się na serwerze plików, bezpośrednio z poziomu urządzenia mobilnego z systemem Android (np. smartfon, tablet).

Powodzenia !

PS. Jeśli na etapie konfiguracji karty serwera w aplikacji X-plore nie podamy nazwy konkretnego zasobu, wówczas (na rozwijanej liście LAN) utworzymy pozycję, która po kliknięciu wyświetli nam wszystkie udostępnione naszemu użytkownikowi zasoby na serwerze plików. Dzięki temu nie będziemy musieli dodawać każdego z udostępnionych nam zasobów z osobna. Warto na liście dodać (również) taki odnośnik.


Dostęp do zasobów, NAS, Samba, Serwery, Sieci komputerowe, Urządzenia mobilne (Android)

Montowanie dysku sieciowego w systemie Windows

Posted on 11 grudnia 202111 grudnia 2021 By Mariusz Brak komentarzy do Montowanie dysku sieciowego w systemie Windows

O wiele bardziej wydajny i dużo przyjemniejszy dostęp do plików zapewnimy sobie montując wybrany zasób sieciowy pod konkretną, samodzielnie przez nas wybraną (spośród dostępnych, wolnych) literę dysku twardego.

By to uczynić klikamy dwukrotnie na ikonę Ten komputer po czym klikamy w zakładkę Komputer by ostatecznie kliknąć w przycisk Mapuj dysk sieciowy:

Powyższa operacja zakończy się wyświetleniem nowego okna (screen poniżej).

W oknie tym, po rozwinięciu listy dysków należy wybrać jedną niezajętą literę dysku twartego. Dobrze, jeśli litera ta będzie nam się kojarzyła z zawartością danego zasobu sieciowego (np. R jak Rozrywka).

Po wybraniu odpowiadającej nam litery dysku, pozostaje w polu Folder: wpisać odnośnik do danego zasobu sieciowego. Dla powyższego przykładu będzie to:

\\192.168.7.41\Rozrywka

Jeśli chcemy by zasób był do naszego komputera przypisany trwale zaznaczamy opcję Podłącz ponownie przy logowaniu a następnie potwierdzamy klikając w przycisk Zakończ.

Powyższym dokonaliśmy trwałego przypisania zasobu sieciowego do naszego komputera.

Od tego momentu, odnosząc się z poziomu dowolnej aplikacji do wybranej litery dysku twardego (w tym przykładzie R:), „linkującej” do zasobu sieciowego, zobaczymy zawartość (katalogi i pliki) znajdujące się na serwerze plików w sieci LAN. Zdalny zasób widziany jest tak, jakby był jednym z lokalnych dysków twardych naszego komputera.

Powodzenia !

Bez kategorii, Dostęp do zasobów, Montowanie zasobu jako dysk, NAS, Samba, Serwery, Sieci komputerowe

Dostęp do zawartości udziału Samby – exploatator Windows

Posted on 11 grudnia 202111 grudnia 2021 By Mariusz Brak komentarzy do Dostęp do zawartości udziału Samby – exploatator Windows

Poniżej przedstawię najprostszy sposób dostania się do plików udostępnionych w ramach wybranego zasobu Samby (Samba – nazwa jednego z najpopularniejszych serwerów plików).

Załóżmy, że adres naszego serwera Samby, dostępnego w obrębie naszej sieci LAN to: 192.168.7.41 a udostępniony zasób to Rozrywka.

Najprostszym sposobem dostępu do plików udostępnionych w ramach zasobu Samby jest otwarcie Exploatatora systemu Windows:

a następnie wprowadzenia w pasek lokalizacji adresu serwera oraz wskazaniem zasobu, do którego potrzebujemy się dostać. Dla powyższego przykładu notacja będzie następująca:

\\192.168.7.41\Rozrywka

Po zatwierdzeniu wprowadzonej lokalizacji klawiszem Enter, jeśli do danego zasobu logujemy się po raz pierwszy lub nie zaznaczyliśmy uprzednio opcji zapamiętania danych logowania, pojawi się monit o wprowadzenie przyznanej nam nazwy użytkownika i hasła. Po wprowadzeniu poprawnych danych logowania wyświetlone zostaną znajdujące się w danej lokalizacji katalogi i pliki:

Dalsza nawigacja (przeglądanie zawartości, otwieranie, kopiowanie plików i katalogów) będzie się odbywała w sposób analogiczny do operowania na dysku lokalnym naszego komputera.

W zależności od nadanych uprawnień, przypisanych do danego konta użytkownika oraz uprawnień nadanych poszczególnym plikom i katalogom w ramach systemu plików (ACL) pewne operacje mogą być niedostępne. Do danego zasobu Samby każdy użytkownik może mieć indywidualnie nadane prawa do odczytu i / lub zapisu i/ lub uruchamiania. W przypadku dostępu do zasobów współdzielonych, będziemy mieli zazwyczaj prawa odczytu i uruchamiania z wyłączeniem możliwości modyfikowania, dodawania czy usuwania plików i katalogów.

Wskazówka: wprowadzenie do exploatatora systemu Windows adresu serwera plików bez wskazania konkretnego zasobu powinno wyświetlić nam listę wszystkich zasobów, do których mamy dostęp, o ile zasobom tym nadano prawo do przeglądania w sieci LAN.

Dla powyższego przykładu prawidłowa notacja wygląda w sposób następujący:

\\192.168.7.41\

Dostęp do zasobów, Exploatator Windows, NAS, Serwery, Sieci komputerowe

Open Media Vault na Raspberry Pi

Posted on 17 września 2021 By Mariusz Brak komentarzy do Open Media Vault na Raspberry Pi

Jeśli lubisz swobodę i nie jesteś zwolennikiem gotowych rozwiązań NAS (np. Synology) a jednocześnie chciałbyś uniknąć nabijania rachunku za prąd (może się okazać, że twój 24 godziny na dobę załączony desktop „nabije” 25% takiego rachunku) zastanów się nad wykorzystaniem w tej roli Raspberry Pi. Z uwagi na implementację. Dla tego zastosowania (NAS) polecam użyć wersję 4 tego mini komputera, z uwagi na implementację standardów Gigabit Ethernet oraz USB3.0.

https://pimylifeup.com/raspberry-pi-openmediavault/

NAS, Serwery, Sieci komputerowe

Zarządzanie dyskami w systemie Linux

Posted on 5 września 202112 września 2021 By Mariusz Brak komentarzy do Zarządzanie dyskami w systemie Linux

Podczas startu systemu operacyjnego lub po dołączeniu dysku do działającego już systemu (np. dysk USB, pendrive) urządzeniom (dyskom) przypisana zostaje nazwa symboliczna, przyjmująca notację sdx, gdzie x jest kolejną literą alfabetu przyklejoną do poprzedzającego ją stringu „sd”. Dyski „znajdowane” podczas startu systemu operacyjnego będą miały nazwy, odpowiednio: sda, sdb, sdc i tak dalej. Na każdym z dysków docelowo zostanie umieszczona przynajmniej jedna partycja. Kolejne partycje znajdujące się na wybranym dysku będą oznaczane kolejną cyfrą dołączaną do ciągu znaków definiujących nazwę symboliczną dysku. Przykładowo jeśli dysk o przypisanej mu nazwie symbolicznej (np. sda) zawiera trzy partycje, otrzymają one nazwy sda1, sda2 oraz sda3.

Nietrudno zauważyć, że w zależności od wpięcia dysku w konkretny slot SATA, lub momentu (kolejności) wpięcia dysku do portu USB, ewentualnie od specyfiki i kolejności startowania kontrolerów USB przez system operacyjny nazwy symboliczne dysków zostaną przyznane urządzeniom, z punktu widzenia użytkownika, w sposób przypadkowy, losowy.

Z uwagi na powyższe pierwszym krokiem przed przystąpieniem do zarządzania np. nowo dołączonym do komputera dyskiem twardym niezbędne będzie ustalenie pod jaką symboliczną nazwą funkcjonuje w danym momencie interesujący nas dysk.

Ze swojej strony sugeruję użycie polecenia, które wyświetli listę dysków oraz znajdujących się na nich partycji w postaci struktury drzewiastej z uwzględnieniem najważniejszych informacji:

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

Jeśli do komputera podłączony został pojedynczy dysk, jego namierzenie nie stworzy użytkownikowi problemu i z dużym prawdopodobieństwem taki dysk otrzyma nazwę symboliczną sda. Jeśli natomiast do komputera podłączono kilka dysków przy identyfikacji tego, w danej chwili nas interesującego dysku, można posłużyć się rozmiarem dysku albo typem systemu plików (np. ext3, ext4, NTFS, FAT). Gorzej jeśli podłączonych mamy kilka dysków o takim samym rozmiarze i jednakowym systemem plików.

Nowo zakupione dyski USB stosunkowo łatwo „namierzyć” po nadanej im przez producenta (na etapie formatowania) etykiecie. Etykieta to ciąg znaków nadawany konkretnej partycji na etapie formatowania partycji lub nadanej w etapie późniejszym. Pod warunkiem, że nie podłączyliśmy na raz kilku identycznych dysków, które będą zwracały dokładnie tę samą etykietę.

Ze swojej praktyki sugeruję podłączać dyski pojedynczo, a po stworzeniu (lub w trakcie tworzenia) wszystkich partycji na danym dysku nadać im etykiety pozwalające na ich jednoznaczną identyfikację w przyszłości, niezależnie od „losowych” identyfikatorów nadawanych dyskom podczas startu systemu operacyjnego, lub równie „losowych” uuid dysków nadawanych im podczas ich formatowania.

Załóżmy, że używając polecenia wskazanego powyżej po „labelu” w postaci ciągu znaków: „Seagate Backup Plus Drive” namierzyliśmy nowo dodany dysk, któremu, jak widać w poniższym przykładzie, system podczas własnego uruchomienia przypisał identyfikator (nazwę symboliczną) sdk:

O ile producenci dostarczają dyski komputerowe zazwyczaj jako urządzenia niezainicjowane, nie zawierające żadnej partycji oraz żadnego systemu plików, o tyle w przypadku urządzeń włożonych do kieszeni USB, i sprzedawanych pod nazwą „dysk USB” znajdują się, z reguły (jak w powyższym przykładzie) dwie partycje. Pierwsza wygląda jak zarezerwowana przestrzeń, podobna do tej rezerwowanej przez instalatora systemu Windows, druga to partycja docelowa zawierająca system plików typu NTFS. Struktura partycji oraz system plików, jak widać, typowe dla systemów Windows, nieoptymalne dla systemów Linux, dlatego pierwszym krokiem będzie usunięcie tych partycji i założenie, w tym przykładzie, pojedynczej partycji ext4.

Skoro znamy już identyfikator dysku, którym mamy potrzebę zarządzać, uruchomimy narzędzie do manipulowania partycjami dysków, wskazując jednocześnie interesujący nas dysk:

fdisk /dev/sdk

W pierwszej kolejności chcemy usunąć z dysku istniejące na nim partycje, sdk1 i sdk2. W tym celu użyjemy komendy „d” (delete a partition) oraz podamy numer partycji do usunięcia. Fdisk sugeruje usuwać partycje od tej ostatniej, zatem w pierwszej kolejności wskażemy partycję nr. 2:


Efekt tego działania możemy sprawdzić za pomocą komendy „p” (print the partition table):


Jak widać, partycja nr 2 została usunięta z tablicy partycji.

Powyższą czynność powtarzamy również dla pierwszej partycji. Ponieważ jednak na dysku została już tylko jedna partycja, wydanie polecenia „d” spowodowało usunięcie ostatniej partycji bez stawiania zbędnego już w zasadzie pytania o numer partycji do usunięcia:


W efekcie z tabeli partycji dysku sdk zostały usunięte wszystkie znajdujące się tam wcześniej partycje:


Przyszedł czas na założenie partycji na całą przestrzeń dysku, czego dokonujemy wydaniem polecenia „n” (add a new partition). Zapytani o numer partycji zatwierdzamy domyślną partycję nr 1 przez wciąnięcie klawisza Enter. Pierwszy sektor również pozostawiamy domyślny (ponownie wciskamy klawisz Enter). Zatwierdzamy również domyślny ostatni sektor (po raz trzeci wciskamy klawisz Enter).


W powyższy sposób na dysku sdk, po uprzednim usunięciu istniejących tam partycji, założyliśmy partycję typu Linux filesystem:


Wszystkie czynności, póki co, wykonaliśmy „witrualnie” w pamięci systemu operacyjnego. W celu rzeczywistego wprowadzenia zmian na dysku, zapiszemy przygotowaną wcześniej tablicę partycji na dysk. Dokonamy tego wciskając klawisz „w” (write table to disk and exit).


Stworzoną uprzednio partycję należy zainicjować docelowym systemem plików. W tym przykładzie będzie to system plików ext4, a dokonamy tego poleceniem:

mkfs.ext4 /dev/sdk1

System plików ext4 został założony na pierwszą partycję dysku sdk. Przy okazji widzimy, że dysk dostał nowy uuid, co też powinno zwrócić uwagę na fakt, że chociaż dysk otrzymał losowy identyfikator, który pozwala na jednoznaczną jego identyfikację, to jednak jego stosowanie, czy to w przypadku identyfikacji zawartości dysku przez człowieka, czy też montowanie takiego dysku, poprzez stosowny wpis w fstab-ie uwzględniający numer uuid, jest mało praktyczne i uciążliwe.

O wiele lepiej jest nowym partycjom nadać przyjazną i czytelną dla człowieka nazwę jednoznacznie identyfikującą przeznaczenie / zawartość partycji.

W tym celu posłużymy się poleceniem e2label, podając znaną już, symboliczną nazwę dysku przypisaną przez system operacyjny (w przykładzie jest to sdk1) oraz przyjazną człowiekowi nazwę partycji (tu: Dokumenty-Pol), dbając o to, by w sposób jednoznaczny definiowała jego zawartość / przeznaczenie:

e2label /dev/sdk1 Dokumenty-Pol


Nazwa (label) dysku została zmieniona (konsola nie zwróciła żadnych błędów):


Teraz odnalezienie interesującej nas partycji wraz z powiązaniem do identyfikatora przypisanego do dysku przez system staje się czymś banalnym:

Również zamontowanie takiego udziału poprzez stosowny wpis w fstab-ie (np. na docelowej maszynie będącej serwerem plików) sprowadza się już w gruncie rzeczy do czegoś, z jednej strony banalnego, z drugiej, na coś, co przekłada się na niezawodne podmontowanie się poprawnego zasobu, niezależnie od losowego identyfikatora dysku przyznanego przez system operacyjny podczas startu maszyny, jak również odpornego na zmianę uuid podczas formatowania danej partycji. Do póki dysk ma taki sam label jak we wpisie fstab, wszystko będzie montowało się prawidłowo.

Przykładowy wpis w fstab na docelowej maszynie:

LABEL=Dokumenty-Pol   /mnt/Dokumenty-Pol   ext4   user,auto,defaults,exec   1   2


Jeśli serwer plików (tak jak w moim przypadku) jest jedną z maszyn wirtualnych na Proxmox-ie (serwerze maszyn wirtualnych) musimy najpierw np. z poziomu konsoli Proxmox-a „podłączyć / przypisać” ten dysk wybranej maszynie wirtualnej (zwirtualizowanemu serwerowi plików).

W poniższym, przykładowym poleceniu (wykonanym w konsoli Proxmox-a) przydzielimy fizyczny dysk (na wyłączność) maszynie wirtualnej nr 100.

qm set 111 -scsi1 /dev/disk/by-label/Dokumenty-Pol

Warto wiedzieć / pamiętać, że aby zapobiec zniszczeniu systemu plików na fizycznym dysku, metodą pass-through można przypisać ten dysk wyłącznie pojedynczej maszynie wirtualnej. Oczywiście, jeśli tą maszyną będzie np. serwer Samby, zawartość dysku będzie można udostępnić pozostałym maszynom wirtualnym właśnie jako zasób Samby.

Przy okazji tekstu o zarządzaniu dyskami w systemie Linux, opisano sprawdzoną i polecaną przez mnie ścieżkę, jaką należy pokonać przy „dokładaniu” kolejnego fizycznego dysku dla serwera plików, stanowiącego jedną z maszyn wirtualnych, działających w ramach Proxmox-a.

Zarządzanie dyskami w systemie Linux

Korzystanie z wielu kont Gmail

Posted on 31 sierpnia 202128 listopada 2023 By Mariusz Brak komentarzy do Korzystanie z wielu kont Gmail

Podczas dodawania nowego konta gmail do przeglądarki Google Chrome w lokalizacji:

%appdata%\Local\Google\Chrome\User Data

np.

c:\Users\Mariusz\AppData\Local\Google\Chrome\User Data\

tworzony jest nowy katalog („Profile 1”, „Profile 2”, „Profile n”).

Dobrą praktyką porządkową będzie zmienić nazwę nowo utworzonego katalogu, np. z „Profile 1” na „profil.mojlogingoogle” oraz stworzyć (np. na pulpicie) skrót z uzupełnionymi polami:

Element docelowy (normalna instalacja chrome):

"C:\Program Files\Google\Chrome\Application\chrome.exe" --profile-directory=profil.mojlogingoogle

Element docelowy (instalacja przy pomocy scoop):

"C:\Program Files\Google\Chrome\Application\chrome.exe" --profile-directory=profil.mojlogingoogle

Rozpocznij w:

"C:\Program Files\Google\Chrome\Application"

W ten sposób (np. na pulpicie) stworzymy skróty do niezależnych profili Google Chrome, pracujących na różnych kontach Gmail. Dodatkowo otwierane w ten sposób profile mogą zostać w łatwy sposób przypięte do paska zadań. Każdy z profili będzie mógł być otwierany oddzielnym przyciskiem bezpośrednio z paska zadań.

Bezobsługowa instalacja Windows 10, sterowników, oprogramowania oraz ustawień użytkownika, Konfiguracja oprogramowania, Korzystanie z wielu kont Gmail, Przeglądarka internetowa

Windows Remix

Posted on 26 sierpnia 2021 By Mariusz Brak komentarzy do Windows Remix

Strona WWW:
https://www.windowsremix.com

Instalacja oprogramowania, Windows Remix

just-install

Posted on 26 sierpnia 2021 By Mariusz Brak komentarzy do just-install

Strona WWW:
just-install/just-install

Instalacja oprogramowania, just-install

Nawigacja po wpisach

1 2 Następny

Najnowsze wpisy

  • Motion. Detekcja ruchu i wysyłanie zdjęcia wykrytego obiektu na wybrany adres e-mail.
  • Masowe układanie plików do katalogów po dacie utworzenia pliku. Organizacja zdjęć (i filmów) zgranych z aparatu, smartfona.
  • Dostęp do serwera plików z poziomu smartfona (Android)
  • Montowanie dysku sieciowego w systemie Windows
  • Dostęp do zawartości udziału Samby – exploatator Windows

Najnowsze komentarze

Brak komentarzy do wyświetlenia.

Archiwa

  • marzec 2023
  • grudzień 2021
  • wrzesień 2021
  • sierpień 2021
  • Bez kategorii
  • Monitoring
    • Motion
  • Sieci komputerowe
    • Serwery
      • NAS
        • Samba
          • Dostęp do zasobów
            • Exploatator Windows
            • Montowanie zasobu jako dysk
            • Urządzenia mobilne (Android)
          • Higiena organizacji katalogów i plików
  • Systemy operacyjne
    • Linux
      • Zarządzanie dyskami w systemie Linux
    • Windows
      • Bezobsługowa instalacja Windows 10, sterowników, oprogramowania oraz ustawień użytkownika
        • Instalacja oprogramowania
          • AppGet
          • Chocolatey
          • Chocolatey GUI
          • just-install
          • Ninite
          • Novus
          • Npackd
          • RuckZuck
          • Scoop
          • Windows Remix
          • Winget
          • Winstall
        • Konfiguracja oprogramowania
          • Przeglądarka internetowa
            • Korzystanie z wielu kont Gmail

Copyright © 2025 Pasja Informatyki.

Powered by PressBook WordPress theme