Mininávody na linuxu #1 čas na linuxu

Trocha teorie

Na linuxu rozlišujeme tzv. hardware clock a system clock. Tedy hardwarový čas a systémový čas. Hardwarový čas je udržován na základní desce počítače a ikdyž je počítač odstavený od elektřiny, v počítači se nachází tzv. CMOS baterie (ve stolních počítačích je to baterie typu CR2032, která se dává též do různých hodinek atd…)

 

Jedna baterie velikosti knoflíku s nápisem CR2032 3V + a vedle ní na ležato na sobě naskládané 4 další baterie typu CR2032

Baterie CR 2032

Systémový čas se načítá zpravidla v okamžiku bootu z hardwarového času. Čas je možný synchronizovat na linuxu pomocí NTP (Network Time protocol) většinou pomocí daemona NTPD. Čas se synchronizuje oproti časovým serverům. V ČR nejznámější tik.cesnet.cz či tak.cesnet.cz. Na Windows známe profláklý název time.windows.com.

Hardwarové hodiny (rtc = real time clock) mají své zařízení v /dev/rtc. Mnohé systémy mají více hodin:

uzivatel@server:~# ls /dev/rtc*
/dev/rtc /dev/rtc0

V souboru /etc/adjtime vidíme výsledek posledního použití příkazu hwclock. Ukazuje nám skluz (anglicky clock drift), tedy zpoždění, nebo naopak předcházení hardwarových hodin a o kolik.

uzivatel@server:~# cat /etc/adjtime
0.048326 1500445272 0.000000
1500445272
UTC



Příkazy:

uzivatel@server:~# date
St čec 19 08:07:56 CEST 2017


uzivatel@server:~# hwclock -r
St 19. červenec 2017, 08:08:45 CEST -0.151119 sekundy

uzivatel@server:~# hwclock -r && date
St 19. červenec 2017, 08:9:18 CEST -0.594535 sekundy
St čec 19 08:9:18 CEST 2017

Mělo by to být v podstatě jedno jestli tam dáte && nebo ;.

uzivatel@server:~# hwclock -r; date
St 19. červenec 2017, 08:10:56 CEST -0.860130 sekundy
St čec 19 08:10:56 CEST 2017

Hardwarový čas počítače (tzv. hardware clock), který se drží v biosu i po vypnutí počítače nastavíme příkazem:
uzivatel@server:~# hwclock --set --date "7/19/2017 8:12"

Pokud plánujete psát nějaké bash skripty, tak se Vám bude hodit tento příkaz:
uzivatel@server:~# date "+%d.%m.%Y %T"
19.07.2017 08:19:34

příkaz hwclock -w přepíše hardwarový čas systémovým časem:
uzivatel@server:~# date; hwclock -r; hwclock -w;echo "po nastaveni:" ;hwclock -r;date
St čec 19 08:21:11 CEST 2017
St 19. červenec 2017, 08:21:33 CEST -0.375769 sekundy
po nastaveni:
St 19. červenec 2017, 08:21:13 CEST -0.501059 sekundy
St čec 19 08:21:13 CEST 2017

Příkaz hwclock -s přepíše systémový čas hardwarovým časem:

uzivatel@server:~# hwclock -r; date; hwclock -s; echo "po nastaveni systemoveho casu podle hardwaroveho casu"; hwclock -r; date;
St 19. červenec 2017, 08:23:27 CEST -0.703940 sekundy
St čec 19 08:23:27 CEST 2017
po nastaveni systemoveho casu podle hardwaroveho casu
St 19. červenec 2017, 08:23:29 CEST -1.000766 sekundy
St čec 19 08:23:29 CEST 2017

NTP (Network Time Protocol)
Ve zkratce Network Time protocol slouží k synchronizaci času po síti. Více Vám řekne třeba wikipedie nebo googlení. NTP umí používat jak Windows, tak Linux, tak MacOS i další operační systémy. Je to naprosto základní služba. Referenční čas používaný NTP je UTC, tedy Coordinated Universal Time.

Příkazy na Linuxu:

Ubuntu/Debian:

apt-get install ntpdate -y
ntpdate -q adresaserver se jednorázově dotáže na server a nastaví systémový čas v počítači.

uzivatel@server:~# hwclock -r;date ; ntpdate -q tik.cesnet.cz
St 19. červenec 2017, 08:27:48 CEST -0.032243 sekundy
St čec 19 08:27:48 CEST 2017

server 195.113.144.201, stratum 2, offset 0.001077, delay 0.03397
19 Jul 08:27:54 ntpdate[1202]: adjust time server 195.113.144.201 offset 0.001077 sec

Vysvětlím, co znamená to Stratum 2. Stratum 0 jsou atomové hodiny. Zkrátka referenční čas. Stratum 1 se dotazuje serveru Stratum 0 na to, jaký je přesný čas. Stratum 2 se proto dotazuje serveru Stratum 1, který se dotazuje na čas Stratum 0. Stratum 1 má přesnější čas, než stratum 3 a stratum 3 má přesnější čas, než Stratum 5.

uzivatel@server:~# ntptrace tik.cesnet.cz
tik.cesnet.cz: stratum 2, offset -0.000034, synch distance 0.000233
tak.cesnet.cz: stratum 1, offset 0.000008, synch distance 0.000000, refid 'GPS'

uzivatel@server:~# ntptrace tak.cesnet.cz
tak.cesnet.cz: stratum 1, offset 0.000008, synch distance 0.000000, refid 'GPS'

Z uvedeného výstupu vyplývá, že server tak.cesnet.cz je Stratum 1 a tedy má čas blíže k referenčnímu času. Referenční čas je z GPS. Zde je odkaz na další možné referenční používané zdroje časů z hlediska NTP protokolu.

 

ntpq na debianu/ubuntu

uzivatel@server:~# ntpq -p
 remote refid st t when poll reach delay offset jitter
==============================================================================
+46.28.110.244 45.127.113.2 3 u 839 1024 377 15.837 -0.313 0.783
-pyrrha.fi.muni. 195.113.144.238 2 u 26 1024 377 7.997 11.011 12.307
+sip.svinov.net 195.113.144.238 2 u 927 1024 377 9.644 -0.160 0.440
*host189-248-2-8 147.231.100.5 2 u 828 1024 377 11.489 1.152 0.950



uzivatel@server:~# ntpq -p tak.cesnet.cz
 remote refid st t when poll reach delay offset jitter
==============================================================================
oGPS_NMEA(0) .GPS. 0 l 7 64 377 0.000 -0.006 0.003
 LOCAL(0) .LOCL. 10 l - 64 0 0.000 0.000 0.000
 tik.cesnet.cz 195.113.144.238 2 u 37 64 377 0.456 -0.006 0.007
 ntp1.cesnet.cz 195.113.144.238 2 u 43 64 377 0.491 -0.015 0.020
 ntp3.cesnet.cz .INIT. 16 u - 64 0 0.000 0.000 0.000
+ntp2.ufe.cz .ATOM. 1 u 39 64 377 0.815 0.087 0.062
 ripe-ttm.cesnet 195.113.144.238 2 u 73d 64 0 0.783 0.144 0.000
+time-a.nist.gov .NIST. 1 u 19 64 377 118.498 1.988 0.017


ntpq na Centosu:

yum install ntp ntpdate ntp-doc -y

uzivatel@server:~# ntpq -p
ntpq: read: Connection refused


uzivatel@server:~# ntpq -p tak.cesnet.cz
 remote refid st t when poll reach delay offset jitter
==============================================================================
oGPS_NMEA(0) .GPS. 0 l 4971 64 377 0.000 -0.007 0.004
 LOCAL(0) .LOCL. 10 l - 64 0 0.000 0.000 0.000
 tik.cesnet.cz 195.113.144.238 2 u 4971 64 377 0.456 -0.006 0.009
 ntp1.cesnet.cz 195.113.144.238 2 u 4971 64 377 0.491 -0.015 0.018
 ntp3.cesnet.cz .INIT. 16 u - 64 0 0.000 0.000 0.000
+ntp2.ufe.cz .ATOM. 1 u 4971 64 377 0.815 0.087 0.064
 ripe-ttm.cesnet 195.113.144.238 2 u 73d 64 0 0.783 0.144 0.000
+time-a.nist.gov .NIST. 1 u 4971 64 377 118.498 1.988 0.018

NTP servery

Pool.ntp.org

Jedná se o servery rozmístěné po celém světě, které si aktualizují čas jednou za hodinu. Na Linuxu jejich nastavení najdete v /etc/ntp.conf

(a to jak na RedHatích distribucích vč. Centos a Fedora, tak na Debian/Ubuntu).

Je lokální NTP server dostupný?

Na Ubuntu/Debianu 7:

uzivatel@debianserver:~# /etc/init.d/ntp status
[ ok ] NTP server is running.

Na Centosu 7:
uzivatel@Centos7server:~# systemctl status ntpd
● ntpd.service - Network Time Service
 Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
 Active: inactive (dead)


ZoneInfo

Zoneinfo je seznam všech časových zón celé zeměkoule.

uzivatel@server:~# ls /usr/share/zoneinfo/
Africa CST6CDT GB Iceland MET posix UCT
America Cuba GB-Eire Indian Mexico posixrules Universal
Antarctica EET GMT Iran MST PRC US
Arctic Egypt GMT0 iso3166.tab MST7MDT PST8PDT UTC
Asia Eire GMT-0 Israel Navajo right WET
Atlantic EST GMT+0 Jamaica NZ ROC W-SU
Australia EST5EDT Greenwich Japan NZ-CHAT ROK zone.tab
Brazil Etc Hongkong Kwajalein Pacific Singapore Zulu
Canada Europe HST Libya Poland SystemV
CET Factory Chile localtime Portugal Turkey

Jak si nastavit čas jako je třeba v Zurichu?
cp /etc/localtime /tmp
ln -sf /usr/share/zoneinfo/Europe/Zurich /etc/localtime

Pro navrácení zpět:

cp /tmp/localtime /etc/

 

Letní LinuxTutorial #3: Řešíme první problémy a pokračujeme

Komu z Vás se podařilo díky návodu v minulém díle nainstalovat linux na vlastní základní desku, tak Vám gratuluji. Tento díl bude určen ze začátku zejména pro ty z vás, kterým bootování linuxu nebo instalace z nějakého důvodu nešla.

 

Při bootování z USB flashky nebo z DVD se mi rozkostičkuje obraz a nic nevidím

Jestli běžíte na integrované grafické kartě, je dost možné, že není podporovaná, nebo nestačí na nejnovější rozhraní linuxu.

Řešení: Zkuste buď starší verzi stejného linuxu, jinou variantu grafického rozhraní (lxde, xfce, cinnamon atd…). Já jsem zatím nikdy neměl problém na slabším hardwaru s Xfce rozhraním nebo s Lxde.

Pokud to nezabralo, tak zkuste jinou distribuci linuxu. Vůbec se v začátcích nemá smysl trápit nad tím, proč Vám nějaká distribuce nejde, prostě si tam nainstalujte jinou variantu stejné distribuce, nebo tam dejte jinou distribuci linuxu. Tedy pokud Vám tam nejde Debian, zkuste ubuntu, když tam nepůjde ubuntu, zkuste Centos, když ani to, zkuste Arch Linux, ZorinOS, nebo starší verze, či různé lightweight verze (odlehčené verze) jakékoliv distribuce… Teď to znělo jak rady pana Babice, nevadí.

Instalace mi nedetekuje síťovou kartu, takže se nedostanu na internet

Setkal se s tím kolega. Debian 8 jessie mu nedetekoval síťovou kartu. Trápil se s tím asi 14 dní, než přišel na to, jak tam ručně dodá ovladače. Tam se mu zase stávalo, že mu síťová karta už konečně svítila, ale jakmile tam připojil kabel, zhasla a přestala fungovat.
Řešení: Jste začátečníci? Tak se na to vykašlete a běžte do jiné distribuce linuxu. Nemá smysl se na začátcích s linuxem jakkoliv trápit. V opačném případě, pokud se na to cítíte, tak vás čeká mnoho hodin googlení a zkoušení. Během instalace je možné ovladače samozřejmě buď ručně načíst, nebo je zaintegrovat přímo do instalace. Postup zde zatím uvádět nebudu. To až podle velkého zájmu čtenářů někdy v budoucnu.

Nejde mi dokončit instalace, protože to chce stahovat data z internetu a mě tam nejde internet

Pokud jste stahnuli .iso verzi netinst, potřebujete mít počítač připojen k internetu, jinak jste schopni nainstalovat maximálně čistý linux bez grafického rozhraní. Po takové „úspěšné“ instalaci by vám zůstal jen příkazový řádek a základní systém. Pokud si dobře pamatuju, tak tam byl jen SSH server a nic víc. Na virtuálních serverech mi to občas stačilo, pro začátečníka je to však nepoužitelné.

Řešení: Začínáte? Stáhněte si verzi i386 nebo i586/i686, v případě viz. 1. článek letního linux Tutorialu AMD64 variantu, pokud váš procesor podporuje 64 bitové instrukce. Tyto uvedené verze v sobě obvykle obsahují i grafické rozhraní a hromadu utilit. Po nainstalování byste tedy měli použitelný linux s grafickým rozhraním.

 

Nainstalováno, co dál?

Linux vám umožňuje opravdu velmi mnoho možností, jak využít hardware, který teď máte před sebou na stole. Naprostá bezkonkurečnost linuxu tkví v jeho spolehlivosti. Linuxový počítač Vám může běžet klidně 3 roky bez restartu, sám jsem se o tom přesvědčil na některých mých serverech. Linux je zkrátka tak spolehlivý a dobře navržený operační systém, který Vám umožní spolehlivě běžet na zařízeních klidně tak dlouho na jednu instalaci, než třeba zařízení nevyměníte za úplně jiné, výkonnější. Můj osobní rekord je něco přes 1100 dní, tedy 3 roky a něco. Důvod proč uptime nebyl delší je skutečnost, že bylo nutné server vypnout kvůli výměně APC zásuvek, jinak by server běžel bez restartu doteď.

Uvedu 0.0001% ze všech možností, které Vám linux nabízí:

  • Linuxový router
  • Linuxový server (tiskový server, webserver, databázový server, emailový server, IRC / chat server, aplikační server)
  • Automatizační počítač
  • Počítač na stahování dat z internetu (torrenty, běžná stahování z uložto atd…)
  • Diskové pole / datové úložiště (NAS / FREENAS)
  • Hraní starých dosáckých her pomocí utility Dosbox pro linux
  • nenáročný počítač pro brouzdání po internetu, lítání po facebooku a sledování youtube videí
  • Nenáročný kancelářský počítač na práci s tabulkami, dokumenty, prezentacemi
  • Informační kiosek (pro propagační účely, stačí jen připojit dotykovou obrazovku)
  • Spouštění pomocí WINE emulátoru i některých programů i her pro windows (kolega bez problému rozjel i Microsoft Office 2016 na Linuxu, já z lenošnosti lognu na rdesktop jinam)
  • Počítač na obnovu dat z vadných médií (flash karty, vadné harddisky atd… pomocí utilit testdisk a photorec)
  • Pokud byste měli výkonnější stroj s procesorem podporujícím virtualizační instrukce, tak i virtualizační server
  • Experimentování s clusterovými systémy (od distribuovaných výpočtů, až po replikované souborové systémy typu DRBD, GlusterFS a další)
  • Učení se s linuxovými utilitami, díky kterým jste schopni zpracovat a automatizovat zpracovávání obřích sad dat, texťáků apod..
  • Počítač pro monitorování domácnosti, teplot, provoz průmyslových zařízení, detektorů, sběr dat z čidel atd…
  • Kamerový systém
  • Softwarová IPS/IDS ochrana (snort, suricata, tripwire, ossec)
  • Kvalitní spolehlivý firewall (iptables, FirewallD, Shorewall atd…)
  • HTPC / TV (home theather PC) (kodi a další)
  • Počítač, na kterém se můžete učit základy programování
  • Vlastní cloud pro synchronizaci souborů (OwnCloud, Seafile, Pydio)
  • Těžení bitcoinů či dalších virtuálních měn (tedy pokud chcete těžit virtuální měnu, nechcete utrácet peníze za licenci Windows či MacOS a máte dostatečně výkonný hardware, určený pro těžbu coinů)
  • PXE server
  • klonování počítačů na dálku
  • klonování disků

A samozřejmě mnoho, mnoho, mnoho dalšího. Budu rád, když mi v komentářích pod tímto článkem napíšete, kudy dál byste se rádi ubírali a kudy bych měl směrovat svoje další díly, protože zatím ještě nic není dané.

Zatím to osobně vidím tak, že bych v příštích dílech ukázal, jak na Linuxovém počítači hrát Dosácké staré hry, to totiž udělá radost každému. 🙂

Letní LinuxTutorial #2: Vypalujeme, vytváříme bootovací USB Flash disk, instalujeme Linux

Kde jsme to skončili minule? Stáhnuli jsme si .iso soubor a teď co s tím. Kdykoliv jsem nějakému začátečníkovi řekl: „a to iso vezmeš a vypálíš ho na CD či DVD“, tak to dopadlo vždycky katastrofálně, protože ten člověk vzal ten .iso soubor a vypálil ho jako datový soubor na DVD, takže to DVD mohl zahodit.

Prvně si tedy ujasníme základní pojmy i pro Vás začátečníky.

Já vím, je to wikipedie, ale pro vyjasnění co to vlastně je, nám to bude stačit.

Co je to ISO soubor

Fajn, už víte co je to ISO soubor a teď jak ho vypálit na nějaké médium.

Jak vypálit instalační iso soubor na DVD či CD

Jestli máte už linux (což nemáte, jinak byste nečetli tenhle tutoriál), tak použijete nějaký vypalovací freeware / open-source typu brasero, nebo k3b.

A protože máte Windows, tak si stáhněte buď:

https://www.slunecnice.cz/sw/ashampoo-burning-studio-free/

Anebo si pogooglete nějaký jiný freeware či open-source prográmek, který Vám umožní vypálit DVD iso obraz.

 

Jak dostat instalační ISO soubor na USB flash disk

Máme na disku stažený .iso soubor z některého z webu naší vybrané distribuce.

Teď jak dostat obsah .iso souboru na flashku tak, aby bylo možné z flashky nabootovat?

Pomůže následující videonávod. Stáhněte si program rufus: zde

A pak už se stačí řídit tímto videem. Open Broadcaster software mi nezobrazoval přídavná okna. Zkrátka stačí vše odsouhlasit, když se vás program na něco zeptá a současně se mi tam nezaznamenala ve videu nabídka, když jsem kliknul na logo CD, které mi umožnilo načtení konkrétního staženého .iso souboru, aby program věděl, jaký .iso soubor má na flashku nahrát.

Jak nainstalovat debian 9 linux

Tohle je základní videoukázka, kterou jsem točil ve virtualboxu (nemám grabovací kartu, ani jakoukoliv jinou možnost, jak natočit video instalace operačního systému). Natáčení kamerou na obrazovku by rovněž postrádalo smysl.