diff --git a/presentation/services/services.pdf b/presentation/services/services.pdf new file mode 100644 index 00000000..4c8f3ef1 Binary files /dev/null and b/presentation/services/services.pdf differ diff --git a/presentation/services/services.tex b/presentation/services/services.tex new file mode 100644 index 00000000..2b086651 --- /dev/null +++ b/presentation/services/services.tex @@ -0,0 +1,704 @@ +\documentclass{beamer} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[czech]{babel} + +\setbeamerfont{title}{size=\LARGE} + +\title{Služby, webový server a ssh} +\author{Eliška Jégrová} +\date{17. 11. 2025} + +% pro obrázky a kreslení +\usepackage{tikz} +\usetikzlibrary{positioning} +\usetikzlibrary{shapes.misc} +\usetikzlibrary{shapes.symbols} +\usetikzlibrary{shapes, shapes.geometric, positioning, arrows} +\usepackage{graphicx} +\usepackage{datetime} +\usepackage{svg} +\usepackage{listings} +\usepackage{dirtree} + + +% vlastní příkaz pro tildy +\newcommand{\ts}{\raisebox{-0.25em}{\textasciitilde}} + +\begin{document} + + \frame{\titlepage} + + \begin{frame}{Obsah} + \tableofcontents + \end{frame} + + +\section{Úvod do problematiky} + +\begin{frame}{Co je počítačová síť} + \begin{itemize} + \item Pro komunikaci mezi počítači je potřeba \textbf{síť}. + \item Umožňuje sdílení dat, provoz síťových služeb. + \item Základní pojmy: + \begin{itemize} + \item \textbf{host} – zařízení v síti, + \item \textbf{server} – poskytuje službu, + \item \textbf{klient} – službu využívá. + \end{itemize} + + \end{itemize} +\end{frame} + + + +\begin{frame}{Síť – host, router, server} +\begin{figure} + \includegraphics[width=0.8\textwidth]{sit_diagram} +\end{figure} +\end{frame} + + +\begin{frame}{IP adresa} + \begin{itemize} + \item \textbf{IP adresa} = identifikátor zařízení v síti. + \item Dva hlavní typy: + \begin{itemize} + \item \textbf{IPv4} (32 bitů): např. 192.168.1.10 + \item \textbf{IPv6} (128 bitů): např. 2001:db8::1 + \end{itemize} + \item IP adresa umožní směrovat data na správný počítač. + \item Často se rozlišuje: + \begin{itemize} + \item \textbf{privátní adresa} – v lokální síti, + \item \textbf{veřejná adresa} – viditelná na internetu. + \end{itemize} + \item Příkaz: + \begin{itemize} + \item \texttt{\$ ip address} + \item \texttt{\$ hostname -I} {} – vypíše jen IP adresy hosta + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{DNS – Domain Name System} + \begin{itemize} + \item Lidé si snadněji pamatují názvy než čísla. + \item \textbf{DNS} převádí názvy (např. \texttt{example.com}) na IP adresy. + \item Funguje podobně jako telefonní seznam. + \item Typické příkazy: + \begin{itemize} + \item \texttt{\$ ping seznam.cz} + \item \texttt{\$ dig seznam.cz} + \end{itemize} + \item Bez DNS by web nefungoval – museli bychom psát IP adresy ručně. + \end{itemize} +\end{frame} + +\begin{frame}{Porty a služby} + \begin{itemize} + \item Jeden server může poskytovat mnoho služeb zároveň. + \item Aby se služby nepletly, používají \textbf{porty}. + \item Port = „číslo služby“. + \item Příklady běžných portů: + \begin{itemize} + \item 22 – SSH + \item 80 – HTTP (web) + \item 443 – HTTPS (web zabezpečený) + \end{itemize} + \item Kombinace: \textbf{IP adresa + port} = konkrétní služba. + \item Např.: \\[0.3em] + \texttt{192.168.1.20:80} → webový server \\ + \texttt{192.168.1.20:22} → SSH \\ + \texttt{192.168.1.20:25} → emailový server + \end{itemize} +\end{frame} + +\begin{frame}{Jak spolu vše souvisí} + \begin{itemize} + \item Uživatel zadá do prohlížeče název: \texttt{seznam.cz}. + \item DNS jej přeloží na IP adresu serveru. + \item Prohlížeč se spojí na port 80/443. + \item Server vrátí odpověď – webovou stránku. + \item SSH funguje podobně, jen na portu 22 a bez webových dat. + \end{itemize} + \vspace{3em} + \begin{tikzpicture}[ + node/.style={ + draw, + rounded corners, + thick, + minimum width=3cm, + minimum height=1cm, + align=center + } + ] + + % Nodes + \node[node] (client) {Klient \\ (např. prohlížeč)}; + \node[node, right=4cm of client] (server) {Server \\ (např. web server)}; + \node[below=1.5cm of client] (note1) {}; + \node[below=1.5cm of server] (note2) {}; + + % Arrows + \draw[->, thick] (client) -- node[above]{požadavek} (server); + \draw[->, thick] (server) -- node[below]{odpověď} (client); + \end{tikzpicture} +\end{frame} + +\section{Firewall} + +\begin{frame}[fragile]{Firewall} + \begin{itemize} + \item Firewall je síťové zařízení nebo software, který \textbf{povoluje nebo blokuje připojení} podle nastavených pravidel. + \item Slouží k ochraně serveru nebo počítače před nežádoucí komunikací. + \item V nových instalacích je firewall obvykle \textbf{zapnutý a defaultně blokuje většinu portů}. + \item Na Fedoře se používá \textbf{firewalld} (dynamický firewall s podporou zón). + + \item Příkaz pro okamžité povolení: + \begin{verbatim} + # firewall-cmd --add-service=http + \end{verbatim} + \item Příkaz pro trvalé povolení po restartu: + \begin{verbatim} + # firewall-cmd --permanent --add-service=http + \end{verbatim} + \end{itemize} +\end{frame} + +\section{Webový server} + +\begin{frame}{Služba a démon} + \begin{itemize} + \item \textbf{Služba} (\emph{service}): + \begin{itemize} + \item něco, co lze zapnout a vypnout + \item má stav (běží/neběží), konfiguraci, logy a závislosti, + \item příklady: webový server, firewall, tiskový server. + \end{itemize} + + \item \textbf{Démon} (\emph{daemon}): + \begin{itemize} + \item dlouho běžící proces „na pozadí“, typicky spuštěný službou, + \item nespouští se z shellu + \item často má v názvu \texttt{d} na konci: \texttt{httpd}, \texttt{firewalld}, \texttt{sshd}. + \end{itemize} + + \item Na Fedoře služby spravuje \textbf{systemd} (PID 1); ovládáme je příkazem \texttt{systemctl}. + \end{itemize} +\end{frame} + + +\begin{frame}{Webový server httpd} + \begin{itemize} + \item Použijeme \textbf{Apache HTTP Server} (balíček \texttt{httpd}). + \item Běží jako \textbf{démon} – dlouho běžící proces na pozadí. + \item Naslouchá typicky na portu \textbf{80} (HTTP), případně \textbf{443} (HTTPS). + \item Webový server běží jako služba \texttt{httpd.service}. + \item Existují alternativy (např. \texttt{nginx}), ale princip správy služby je podobný. + \end{itemize} +\end{frame} + + +\begin{frame}[fragile]{Instalace webového serveru} + \begin{itemize} + \item Instalace na Fedoře: + \begin{verbatim} + # dnf install httpd + \end{verbatim} + \item Balíček obsahuje binárku serveru, konfiguraci i dokumentaci. + \item Důležité konfigurační soubory: + \begin{itemize} + \item \texttt{/etc/httpd/conf/httpd.conf} – hlavní konfigurace, + \item \texttt{/etc/httpd/conf.d/*.conf} – další části nastavení, + \item \texttt{/etc/httpd/conf.modules.d/*.conf} – seznam modulů. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Start, stop, stav služby} + \begin{itemize} + \item Systémové služby se spravují jako \textbf{root} (např. \texttt{\$ sudo -i}). + \item Základní příkazy: + \begin{verbatim} + # systemctl start httpd - spuštění služby (a démona) + # systemctl stop httpd - zastavení služby + # systemctl status httpd - informace o běhu + \end{verbatim} + \item \texttt{status} ukáže: + \begin{itemize} + \item zda služba běží, + \item PID a počet procesů \texttt{httpd}, + \item poslední hlášky z logu. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Test webového serveru} + \begin{itemize} + \item Po \texttt{systemctl start httpd} by server měl naslouchat na portu 80. + \item Test z příkazové řádky: + \begin{verbatim} + $ curl http://192.168.1.10 + \end{verbatim} + \item Textový prohlížeč (ve virtuálce): + \begin{verbatim} + # dnf install links + $ links http://192.168.1.10 + \end{verbatim} + \item V prohlížeči zadejte do adresního řádku: \texttt{http://192.168.1.10} + \item Při správně nastavené síti a povolené službě \texttt{http} + ve firewallu je testovací stránka dostupná i z jiného počítače. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Automatické spuštění po startu} + \begin{itemize} + \item Na Fedoře se nově nainstalované služby \textbf{nespouští automaticky}. + \item Nastavení spuštění při startu systému: + \begin{verbatim} + # systemctl enable httpd # zapnout při startu + # systemctl disable httpd # nezapínat při startu + \end{verbatim} + \item Ověření: + \begin{itemize} + \item restart systému, + \item znovu \texttt{systemctl status httpd}. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Změna konfigurace a reload} + \begin{itemize} + \item Konfigurační soubory (např. \texttt{/etc/httpd/conf.d/welcome.conf}) + se načítají při startu služby. + \item Po změně konfigurace je potřeba server informovat: + \begin{verbatim} + # systemctl reload httpd # načtení nové konfigurace + # systemctl restart httpd # úplný restart služby + \end{verbatim} + \item \texttt{reload}: + \begin{itemize} + \item běžící spojení zůstanou zachována, + \item nová spojení už používají nové nastavení. + \end{itemize} + \item \texttt{restart}: + \begin{itemize} + \item služba se ukončí a znovu spustí, + \item aktuální spojení se zavřou. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{DocumentRoot a obsah webu} + \begin{itemize} + \item \textbf{DocumentRoot} = adresář, odkud server servíruje soubory. + \item Nastavení je v \texttt{/etc/httpd/conf/httpd.conf} + \item Výchozí DocumentRoot na Fedoře (Apache): \texttt{/var/www/html/}. + \item Vytvoř testovací soubor: + \begin{verbatim} + # echo "Hello, World" > /var/www/html/hello.txt + \end{verbatim} + \item Otevři v prohlížeči: + \begin{verbatim} + http://192.168.1.10/hello.txt + \end{verbatim} + \item Změny v \textbf{obsahu} DocumentRootu se projeví hned + – není potřeba \texttt{reload}. + \end{itemize} +\end{frame} + + + +\begin{frame}[fragile]{Logy webového serveru} + \begin{itemize} + \item Pro hledání chyb a kontrolu běhu slouží logy. + \item Základní přehled: \texttt{systemctl status httpd}. + \item Detailnější log přes \texttt{journalctl}: + \begin{verbatim} + $ journalctl -u httpd + \end{verbatim} + \item V logu najdeš např.: + \begin{itemize} + \item start/stop služby, + \item chybová hlášení, + \item informaci, na jakém portu server naslouchá. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Signály a démoni} + \begin{itemize} + \item Každá služba může reagovat na signály trochu jinak. + \item \textbf{systemd unit} popisuje, jak se služba spouští, zastavuje a reloaduje. + \item Jak to zjistit: + \begin{itemize} + \item zobrazit definici služby: + \begin{verbatim} + $ systemctl cat httpd + $ systemctl cat sshd + \end{verbatim} + \end{itemize} + \item Z toho pak vyčteš: + \begin{itemize} + \item jestli \texttt{reload} jen načte konfiguraci, + \item jak „elegantně“ se služba ukončuje, + \item jaké signály daný démon pro tyto akce používá. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{Samostatná práce 1 – služby a webový server} + \begin{enumerate} + \item Ověř, zda je na virtuálce nainstalovaný balíček \texttt{httpd}. + Pokud ne, nainstaluj ho. + + \item Zjisti, jestli se služba \texttt{httpd} spouští automaticky po startu + systému. Pokud ne, nastav, aby se spouštěla. + + \item Vytvoř jednoduchou stránku \texttt{status.html} v DocumentRootu + (\texttt{/var/www/html/}), která bude obsahovat: + \begin{itemize} + \item jméno serveru (např. Virtuálka), + \item tvoje jméno, + \item k čemu tento server slouží. + \end{itemize} + + \item V prohlížeči na hostitelském systému otevři: + \texttt{http://IP\_TVE\_VIRTUALKY/status.html} + a ověř, že se stránka načte. + \end{enumerate} +\end{frame} + +\begin{frame}{Samostatná práce 2 – úpravy httpd.conf} + \begin{enumerate} + \item V \texttt{/var/www/html} vytvoř soubor: + \begin{itemize} + \item \texttt{uvod.html} – krátký text o serveru, + \end{itemize} + + \item V \texttt{httpd.conf} nastav direktivu: \\ + \texttt{DirectoryIndex uvod.html index.html}.\\[0.3em] + Ověř v prohlížeči, že se při otevření + \texttt{http://IP\_SERVERU/} načte právě \texttt{uvod.html}. + + \item Bonus: Přidej vlastní chybovou stránku v \texttt{httpd.conf}: \\ + \texttt{ErrorDocument 404 /chyba-404.html}.\\[0.3em] + Vytvoř \texttt{/var/www/html/chyba-404.html} a ověř, + že se zobrazí při zadání neexistující URL (např. testuji.html). + + \item Bonus: Zkontroluj, že v logu není chyba konfigurace. + \end{enumerate} +\end{frame} + +\section{SSH – vzdálená administrace} + +\begin{frame}{SSH – vzdálená administrace} + \begin{itemize} + \item \textbf{SSH} = \emph{Secure Shell} – bezpečné vzdálené přihlášení na server. + \item Správa serveru „jako přes terminál“, ale přes síť / internet. + \item Veškerá komunikace (včetně hesla) je \textbf{šifrovaná}. + \item Strany spojení: + \begin{itemize} + \item \textbf{server} – služba \texttt{sshd} běžící na vzdáleném stroji, + \item \textbf{klient} – program \texttt{ssh} nebo grafický klient (např. PuTTY). + \end{itemize} + \item Typické použití: + \begin{itemize} + \item přihlášení na server, + \item spouštění příkazů, správa služeb, editace konfigurace. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Instalace SSH serveru (OpenSSH)} + \begin{itemize} + \item Na Fedoře se používá implementace \textbf{OpenSSH}. + \item Instalace serveru: + \begin{verbatim} + $ sudo dnf install openssh-server + \end{verbatim} + \item Spuštění služby \texttt{sshd}: + \begin{verbatim} + $ sudo systemctl start sshd + \end{verbatim} + \item Otevření ve firewallu (port 22): + \begin{verbatim} + $ sudo firewall-cmd --add-service=ssh + \end{verbatim} + \item Po nastavení můžeš z jiného stroje používat SSH přihlášení. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{První připojení – localhost} + \begin{itemize} + \item Nejdřív si SSH vyzkoušíme „sama na sebe“: + \begin{verbatim} + $ ssh localhost + \end{verbatim} + \item \texttt{localhost} = „tento počítač“ (bez ohledu na IP). + \item Při prvním připojení: + \begin{itemize} + \item SSH vypíše \textbf{otisk (fingerprint)} klíče serveru, + \item zeptá se, zda důvěřuješ tomuto serveru (\texttt{yes/no}), + \item po potvrzení a zadání hesla jsi přihlášená. + \end{itemize} + \item Otisk se dá na serveru zjistit (správce posílá přes jiný kanál): + \begin{verbatim} + $ sudo ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub + \end{verbatim} + \item Po přihlášení vidíš shell na vzdáleném stroji, + prompt bude např. \texttt{petr@localhost:\ts\$}. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Soubor \texttt{known\_hosts} a změna klíče} + \begin{itemize} + \item Po prvním připojení si klient SSH uloží klíč serveru do: + + \texttt{\ts/.ssh/known\_hosts} + + \item Při dalším připojení kontroluje, zda se klíč nezměnil. + \item Když se klíč změní, SSH varuje + (může to znamenat útok typu „man-in-the-middle“). + \item Postup: + \begin{itemize} + \item ověř u administrátora, že klíč byl skutečně změněn, + \item pokud je vše v pořádku, smaž starý řádek z \texttt{known\_hosts}, + \item připoj se znovu a nový otisk znovu potvrď. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Připojení na vzdálený server} + \begin{itemize} + \item Typický tvar příkazu: + \begin{verbatim} + $ ssh uzivatel@192.168.122.133 + \end{verbatim} + \item Uživatelské jméno bude jiné než na „tvém“ počítači. + \end{itemize} +\end{frame} + + +\begin{frame}[fragile]{Jméno serveru} + \begin{itemize} + \item Pro orientaci je dobré mít na serveru \textbf{smysluplné jméno}. + \item Zobrazení jména: + \begin{verbatim} + $ hostname + $ hostnamectl + \end{verbatim} + \item Dočasná změna (do restartu): + \begin{verbatim} + $ sudo hostname virtualka + \end{verbatim} + \item Trvalé nastavení je v souboru \texttt{/etc/hostname} + \item Permanentní změna: + \begin{verbatim} + $ sudo hostnamectl set-hostname virtualka + \end{verbatim} + \end{itemize} +\end{frame} + +\begin{frame}{SSH klíče – motivace} + \begin{itemize} + \item Přihlašování \textbf{heslem}: + \begin{itemize} + \item jednoduché na začátek, + \item méně pohodlné a méně bezpečné (hesla se dají hádat). + \end{itemize} + \item Přihlašování pomocí \textbf{SSH klíčů}: + \begin{itemize} + \item používá se dvojice \textbf{veřejný} + \textbf{soukromý} klíč, + \item veřejný klíč je na serveru, soukromý máš jen ty, + \item po nastavení se už k serveru přihlašuješ bez zadávání hesla + k účtu (jen případné heslo ke klíči). + \end{itemize} + \item Výhoda: + \begin{itemize} + \item bezpečnější než hesla, + \item pohodlnější při častém připojování (skripty, Git, automatizace). + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{SSH klíče – vytvoření a použití} + \begin{itemize} + \item Vytvoření klíčů (na svém počítači): + \begin{verbatim} + $ ssh-keygen + \end{verbatim} + \item Výchozí umístění: + \begin{itemize} + \item soukromý klíč: \texttt{\ts{}/.ssh/id\_rsa} + \item veřejný klíč: \texttt{\ts{}/.ssh/id\_rsa.pub} + \end{itemize} + \item Veřejný klíč se kopíruje na server do + \texttt{\ts/.ssh/authorized\_keys}. + \item Pohodlný způsob: \texttt{ssh-copy-id}: + \begin{verbatim} + $ ssh-copy-id uzivatel@server + \end{verbatim} + \item Po úspěchu se můžeš přihlásit: + \begin{verbatim} + $ ssh uzivatel@server + \end{verbatim} + \item Pokud má klíč nastavené heslo, zadáš jen to. + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Nastavení SSHD} + \begin{itemize} + \item Konfigurace serveru \texttt{sshd}: + \begin{itemize} + \item hlavní soubor: \texttt{/etc/ssh/sshd\_config}, + \item další části: \texttt{/etc/ssh/sshd\_config.d/}. + \end{itemize} + \item Lze měnit např.: + \begin{itemize} + \item port (např. z 22 na 2222), + \item povolené metody přihlášení (hesla/klíče), + \item verze protokolu, povolené šifrovací algoritmy atd. + \end{itemize} + \item Při změně portu nezapomeň na: + \begin{itemize} + \item firewall, + \item parametr \texttt{-p} na straně klienta. + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{Samostatná práce 3 – SSH a hostname} + \begin{enumerate} + \item Zkontroluj, zda je nainstalovaný a spuštěný \textbf{SSH server}: + \begin{itemize} + \item pokud neběží, spusť ho a nastav automatické spuštění po startu. + \end{itemize} + \item Nastav na virtuálce hostname, např. \texttt{web-vm1} (hostnamectl) + Pomocí odhlášení/přihlášení ověř, že se jméno objeví v promptu. + + + + \item Z hostitelského systému se přihlas na server + a spusť tam příkaz: + \begin{itemize} + \item \texttt{hostname; whoami; uptime} + \end{itemize} + + \item Najdi ve svém domovském adresáři soubor \texttt{.ssh/known\_hosts} + a podívej se, jak je v něm tvůj server uložený (IP, jméno, typ klíče). + \end{enumerate} +\end{frame} + +\begin{frame}{Samostatná práce 4 (BONUS) – kopírování přes SSH (scp)} + \begin{enumerate} + + \item Na virtuálce v domovském adresáři vytvoř soubor + \texttt{poznamky.txt} s libovolným obsahem. + + \item Z hostitelského systému zkopíruj soubor z virtuálky k sobě: + \begin{itemize} + \item \texttt{scp uzivatel@IP\_VIRTUALKY:\ts/poznamky.txt .} + \end{itemize} + Ověř, že se soubor objevil v aktuálním adresáři na hostiteli. + + \item Vytvoř na hostitelském systému soubor + \texttt{readme.txt} a zkopíruj ho na virtuálku + do domovského adresáře: + \begin{itemize} + \item \texttt{scp readme.txt uzivatel@IP\_VIRTUALKY:\ts/} + \end{itemize} + Na závěr se na virtuálku přihlas přes SSH a ověř, že tam + oba soubory opravdu jsou. + \end{enumerate} +\end{frame} + +\section{Cron} + +\begin{frame}[fragile]{Co je cron} + \begin{itemize} + \item \textbf{cron} je služba, která spouští úlohy v definovaných časech. + \item Úlohy se zapisují do souborů zvaných \emph{crontab}. + \item Umožňuje plánovat opakující se příkazy: + + \begin{itemize} + \item Zálohování databáze + \item Rotace logů + \item Kontrola stavu služby + \item Čištění dočasných souborů + \item Spouštění skriptů pro sběr dat v určitých intervalech + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}[fragile]{Syntaxe crontab} + \begin{itemize} + \item Každý řádek má 5 polí pro čas + příkaz: + \end{itemize} + \begin{verbatim} + * * * * * příkaz + | | | | | + | | | | |-- den v týdnu (0–6) + | | | |-- měsíc (1–12) + | | |-- den v měsíci (1–31) + | |-- hodina (0–23) + |-- minuta (0–59) + \end{verbatim} + \vspace{0.5em} + \hspace{2em}\texttt{\$ crontab -e} \\ + \hspace{2em}\texttt{\$ crontab -l} +\end{frame} + + + +\begin{frame}[fragile]{Příklad cron úlohy} + \begin{itemize} + \item Spustit skript každý den ve 2:30 ráno + \end{itemize} + \vspace{0.3em} + \hspace{2em}\texttt{30 2 * * * /home/uzivatel/backup.sh} \\ + \hspace{2em}– spustí se `backup.sh` každý den v 2:30 + \vspace{0.5em} + \begin{itemize} + \item Spustit skript každou minutu + \end{itemize} + \vspace{0.3em} + \hspace{2em}\texttt{* * * * * mplayer} \\ \hspace{2.5em}\texttt{/usr/share/sounds/gnome/default/alerts/hum.ogg} \\ + + \vspace{0.5em} + \begin{itemize} + \item Pro přesměrování výstupu a chyb: + \end{itemize} + \hspace{2em}\texttt{30 2 * * * /path/to/script.sh >} \\ \hspace{2.5em}\texttt{/var/log/muj.log 2>\&1} +\end{frame} + +\begin{frame}[fragile]{Samostatná práce 5 – cron} + \begin{itemize} + \item Vytvoř skript \texttt{\ts{}/check\_mem.sh}, který vypíše + aktuální datum a obsazení paměti: + \begin{verbatim} + #!/bin/bash + date + free -m + \end{verbatim} + + \item Nastav mu spustitelný příznak: + + \texttt{\$ chmod +x \ts/check\_disk.sh} + + + \item Pomocí \texttt{crontab -e} naplánuj, aby se skript spouštěl + každých 5 minut a výstup zapisoval do souboru + \texttt{\ts{}/cron\_mem.log}. Můžeš využít: https://crontab.guru/ + + \item Počkej, až cron úlohu několikrát spustí, a zkontroluj obsah + \texttt{cron\_mem.log}. Ověř, že jsou v něm různé časy a aktuální + využití disku. + \end{itemize} +\end{frame} + + + + +\end{document} \ No newline at end of file diff --git a/presentation/services/sit_diagram.pdf b/presentation/services/sit_diagram.pdf new file mode 100644 index 00000000..e0c5d74c Binary files /dev/null and b/presentation/services/sit_diagram.pdf differ