piatok 27. decembra 2019

Radosti a starosti linuxového admina: Ako som volal do datacentra?

Kde bolo tam bolo, bol jeden administrátor. Alebo radosti a starosti linuxového admina. Ako som volal do datacentra?

Nebolo to tak dávno, keď som spravoval jeden eshop. Všetko bežalo na jednom servery nemenovanej spoločnosti, ktorá prenajíma servery. Bol tam nainštalovaný CentOS 7, php-fpm (môj miláčik), apache a postgre.


štvrtok 26. decembra 2019

utorok 24. decembra 2019

chmod (alebo práva v linuxe) - part 1

Dnes si z trojice (chwon, chgrp, chmod) predstavíme posledný, príkaz chmod.

Chmod alebo change file mode bits, teda ideme meniť práva


nedeľa 22. decembra 2019

sobota 21. decembra 2019

piatok 20. decembra 2019

ssd alebo hdd?

Občas potrebujeme zistiť, či máme na servery disky HDD alebo SSD. Ako sa to robí v linuxe? Napíklad suse linux:



štvrtok 19. decembra 2019

Chown

Z trojice (chown, chgrp, chmod) si predstavíme dnes to prvé. Teda príkaz chown.

Chown je zo skratky: change ownner, teda zmena vlastníka.


utorok 17. decembra 2019

Update Debian 9

Update Debianu:

Alebo ako som si updatoval operačný systém. (Nie upgrade na novšiu verziu)

1. Zistíme, či máme vôbec voľné miesto:


root@guliverkel:/home/martin# df -h /dev/sda3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        15G  3.9G   11G  27% /


2. Zálohujem si grub


root@guliverkel:/home/martin# mkdir /media/data2/grub
root@guliverkel:/home/martin# cp /boot/grub/grub.cfg /media/data2/grub

root@guliverkel:/home/martin# ls -lh /media/data2/grub
total 12K
-r--r--r-- 1 root root 12K Dec 17 08:08 grub.cfg

3. Pozriem sa na to, akú konkrétnu verziu Debianu mám, plus aké mám jadro:


root@guliverkel:/home/martin# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@guliverkel:/home/martin# uname -r
4.9.0-8-amd64





4. Môžem spustiť prvý krok updatu (apt-get update) alebo v týchto novších verziách stačí apt update


root@guliverkel:/home/martin# apt update
Ign:1 http://ftp.sk.debian.org/debian stretch InRelease
Get:2 http://ftp.sk.debian.org/debian stretch Release [118 kB]
Get:3 http://ftp.sk.debian.org/debian stretch Release.gpg [2,365 B]                                                                                                                                                                                                         
Get:4 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]                                                                                                                                                                                         
Get:5 http://ftp.sk.debian.org/debian stretch/main Sources [6,747 kB]                                                                                                                                                                                                       
Get:6 http://security.debian.org/debian-security stretch/updates/non-free Sources [1,216 B]                                                                                                                                                                                 
Get:7 http://security.debian.org/debian-security stretch/updates/main Sources [202 kB]                                                                                                                                                                                       
Get:8 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [509 kB]                                                                                                                                                                               
Get:9 http://security.debian.org/debian-security stretch/updates/main Translation-en [224 kB]                                                                                                                                                                               
Get:10 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages [1,596 B]                                                                                                                                                                         
Get:11 http://ftp.sk.debian.org/debian stretch/contrib Sources [44.7 kB]                                                                                                                                                                                                     
Get:12 http://ftp.sk.debian.org/debian stretch/non-free Sources [79.4 kB]                                                                                                                                                                                                   
Get:13 http://ftp.sk.debian.org/debian stretch/main amd64 Packages [7,086 kB]                                                                                                                                                                                               
Get:14 http://ftp.sk.debian.org/debian stretch/main Translation-en [5,385 kB]                                                                                                                                                                                               
Get:15 http://ftp.sk.debian.org/debian stretch/non-free amd64 Packages [78.3 kB]                                                                                                                                                                                             
Get:16 http://ftp.sk.debian.org/debian stretch/non-free Translation-en [80.3 kB]                                                                                                                                                                                             
Get:17 http://ftp.sk.debian.org/debian stretch/contrib amd64 Packages [50.9 kB]                                                                                                                                                                                             
Fetched 20.7 MB in 6s (3,284 kB/s)                                                                                                                                                                                                                                           
Reading package lists... Done                                                                                                                                                                                                                                               
Building dependency tree                                                                                                                                                                                                                                                     
Reading state information... Done                                                                                                                                                                                                                                           
83 packages can be upgraded. Run 'apt list --upgradable' to see them. 


5. Tu mi vyhodí, čo bude upgradovať (len časť vypíšem)


root@guliverkel:/home/martin# apt list --upgradable                                                                                                                                                                                                                           
Listing... Done                                                                                                                                                                                                                                                             
base-files/oldstable 9.9+deb9u11 amd64 [upgradable from: 9.9+deb9u9]                                                                                                                                                                                                         
debian-archive-keyring/oldstable 2017.5+deb9u1 all [upgradable from: 2017.5]                                                                                                                                                                                                 
e2fslibs/oldstable 1.43.4-2+deb9u1 amd64 [upgradable from: 1.43.4-2]                                                                                                                                                                                                         
e2fsprogs/oldstable 1.43.4-2+deb9u1 amd64 [upgradable from: 1.43.4-2]       

6. spustím upgrade balíčkov:


root@guliverkel:/home/martin# apt upgrade
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:

83 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 176 MB of archives.
After this operation, 244 MB of additional disk space will be used.


7. spustím apt dist-upgrade


root@guliverkel:/home/martin# apt dist-upgrade
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@guliverkel:/home/martin#


8. Keďže sa natiahli aj nejaké nové manuály, updatujem aj tie pomocou príkazu catman

catman - update man stránok

(niečo z catmanu)

root@guliverkel:/home/martin# catman

Updating cat files for section 1 of man hierarchy /usr/share/man
2to3-2.7, 2to3-3.5, 7z, 7za, 7zr, Xorg.wrap, acpi_available, add-apt-repository, apm_available, appres, appstreamcli, apropos, apt-extracttemplates, apt-ftparchive, apt-listchanges, apt-sortpkgs, ar, arch, ark, asn1parse, aspell,

9. rebootujem operačný systém (reboot and pray)

init 6

10. zistím, či sa nezmenil grub, verziu OS a jadra:


root@guliverkel:/home/martin# cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@guliverkel:/home/martin# uname -r
4.9.0-8-amd64
root@guliverkel:/home/martin# uptime -s
2019-12-17 08:22:25




pondelok 16. decembra 2019

Keď potrebujeme do single-user-modu

Občas sa potrebujeme dostať do single user modu alebo do runlevel 1. (Napríklad server je dole (je vypnutý, alebo zahltený)


Keď je server zahltený, potrebujeme sa dosať do user-single-modu a v ňom povoliť, aby niektoré služby nenabehli.

Napríklad, na sieťovej karte eth2 beží zákaznická aplikácia, ale idú vymeniť sieťovku. (eth2 je sieť pre zákazníka.)

My sa musíme dostať do single-user-modu a vypnúť aplikáciu pri štarte. Technik vymení sieťovú kartu, reštartuje sa server, my zistíme konekciu a až potom sa zapne aplikácia ručne. Ako to urobiť?

1. zapneme server

2. prídeme do GRUBu

3. stlačíme písmeno e ako edit

4. zadáme číslo 1 na konci, aby nabehol do runlevel 1 (ako vidíme tu: https://www.debuntu.org/wp-content/uploads/2012/12/grub2-runlevel1.png )




5. prídeme do sinlgemodu a vypneme službu pri štarte:

A) pre SysV chkconfig služba_app off 

viac o tom tu: https://www.thegeekdiary.com/how-to-enable-or-disable-service-on-boot-with-chkconfig/

B) pre systemD: systemctl disable applikacia 

6. vypneme stroj, kontaktujeme technika a čakáme na neho, kým vymení sieťovú kartu

7. zapneme stroj a skontrolujeme, či sieťovku nahodilo a či cez ňu tečie konekcia

8. ak áno, zapneme službu a pridáme do systému, aby nabehla po boote:

A) pre SysV chkconfig služba on

B) pre systemD systemctl enable applikácia

nedeľa 15. decembra 2019

sudo rm -rf /

Dosť často sa stretnete s vtipom sudo rm -rf /

Čo to vlastne je? Pokúsme sa to rozanalyzovať:

rm je príkaz na mazanie súborov:

máme tu súbor Zaira.txt

martin@guliverkel:~$ ls -lh Zaira.txt 
-rw-r--r-- 1 martin martin 1.9K Dec 15 20:42 Zaira.txt

Vymazali sme súbor Zaira.txt

martin@guliverkel:~$ rm Zaira.txt 
martin@guliverkel:~$ ls -lh Zaira.txt 
ls: cannot access 'Zaira.txt': No such file or directory

rm má prepínač -i ako interactive: bude sa vás pýtať: ako vidíte tu:

martin@guliverkel:~$ rm -i Diego_kokain.txt 
rm: remove regular file 'Diego_kokain.txt'? y  
martin@guliverkel:~$ ls -lh Diego_kokain.txt 
ls: cannot access 'Diego_kokain.txt': No such file or directory


(Na RHEL distribúciach RHEL, CentOS, Fedora, Oracle Linux je rovno v aliasoch zabudované to, aby sa vás pýtalo, či chcete skutočne zmazať. Veď dajte na tých distribúciach príkaz alias)

potom tu máme prepínač rm -r 

Ako teda mažeme adresáre? (na prázdne adresáre používame príkaz rmdir) Príklad:

martin@guliverkel:~$ mkdir sexi_kocky
martin@guliverkel:~$ rmdir sexi_kocky/


Vytvorme si ale adresár a dajme tam súbory: (a pozrime sa na príkaz rmdir teraz)

martin@guliverkel:~$ mkdir sexi_divoke_kocky
martin@guliverkel:~$ touch sexi_divoke_kocky/Diego_Kokain.drg
martin@guliverkel:~$ touch sexi_divoke_kocky/Zaira.txt
martin@guliverkel:~$ touch sexi_divoke_kocky/RobertF.avi
martin@guliverkel:~$ touch sexi_divoke_kocky/xxx_VladkoM_rozdelenieRepubliky.fin
martin@guliverkel:~$ rmdir sexi_divoke_kocky/
rmdir: failed to remove 'sexi_divoke_kocky/': Directory not empty

V takom prípade vyskúšam príkaz rm -r s tým, že -r znemaná rekurzívne. (Zmaže všetko, čo sa nachádza, teda, adresár, ba aj súbory v ňom. Aj Diegovu kokainovu minulosť. Na tomto systéme.) Pozrime sa na to:

martin@guliverkel:~$ rm -r sexi_divoke_kocky/
martin@guliverkel:~$ ls -lh sexi_kocky/
ls: cannot access 'sexi_kocky/': No such file or directory


rm -rf spraví to, že zmaže všetko rekurzívne (r). prepínač f znamená force, tj. nepýta sa a spraví to. Pozrime sa:

martin@guliverkel:~$ mkdir futbalisti
martin@guliverkel:~$ touch futbalisti/crespo
martin@guliverkel:~$ touch futbalisti/sevcenko
martin@guliverkel:~$ touch futbalisti/Pali
martin@guliverkel:~$ touch futbalisti/Mudra
martin@guliverkel:~$ rm -rf futbalisti/
martin@guliverkel:~$ ls -lh futb*
ls: cannot access 'futb*': No such file or directory


V linuxe sa koreňové adresáre určujú týmto znakom /

To je najvyššia možná úroveň. Pokiaľ by sme ako obyčajný užívateľ dali rm -rf /, zmažeme svoj domáci adresár. (Vyššie nemáme práva zápisu.)

Pokiaľ ako root (alebo s pomocou sudo ako bežný užívateľ) vykonáme túto činnosť, zmažeme si celý systém.

Preto pre lásku Božiu, nikdy nepíšte sudo rm -rf / - zmažete si celý koreňový adresár.

PS: Zbytok článku som dopísal z telefónu, pretože som vykonal tento príkaz a čaká ma tak inštalácia Linuxu. (Veď si všimnite lokalitu, kde som to písal.)


Drobný test

Niečo sme sa naučili, poďme si vypracovať nejaké úlohy. (Dnes zadám len úlohy, neskôr poskytnem ich riešenie.)

1. prihláste sa na užívateľa root a prejdite do jeho domovského adresáru

2. Pozrite sa, či sa v /etc/ nachádza súbor fstab

3. Spravte rm -rf / ako root a ďalej už nemusíte pokračovať. (Popíšte, čo vám ten príkaz urobí)

4. Napíšte skript, ktorý vám skontroluje

A) informácie o tom, aký je to operačný systém
B) ako dlho beží operačný systém
C) koľko je hodín?
D) pochválite sa, akí ste skvelí, jedineční
E) názov hostname

5. Skopírujte súbor /etc/resolv.conf do adresára /media/test_data (Vytvorte aj zálohu /media/test_data/resolv.conf.bak (Ďalej .bak)

6. Pomocou editoru vi pridajte do .bak súboru toto : "Skúsime fungovať bez DNS"

7. Skontolujte, či súbor .bak má práva zápisu pre skupinu. Ak nemá, vytvorte ich

8. Vytvorte užívateľa tester, skupinu test_produkcia. Potom do vytvorenej skupiny pridajte užívateľa tester

9. Skontrolujte, či na systéme beží proces "Lovec-bitkoin" a zabite ho. (Pokiaľ nebeží, popíšte ako človek, nie cez príkazy, čo by ste robili.) Napríklad: rozbitie monitoru a nalievanie kyseliny do disketovej mechaniky by pomohlo

10. Akú IP adresu a netmasku má Váš operačný systém; Čo je MAC adresa?

piatok 13. decembra 2019

uptime

Uptime má nejaké zaujímavé prepínače. Samotný príkaz vyhodí hodnotu ako dlho je operačný systém hore.


[root@lajka~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)


[root@lajka~]# uptime
 11:08:58 up  1:35,  1 user,  load average: 0.00, 0.01, 0.05

uptime to vie aj v ľudskom tvare: (prepínače -s, -p)

[root@lajka~]# uptime -s
2019-12-13 09:33:44


[root@lajka~]# uptime -p
up 1 hour, 35 minutes


Aký je to OS? (na starších RHELoch to nefunguje)

[root@babajaga(nag) nagios]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)

[root@babajaga(nag) nagios]# uptime -s
usage: uptime [-V]
    -V    display version

[root@babajaga(nag) nagios]# uptime -p
usage: uptime [-V]
    -V    display version

[root@babajaga(nag) nagios]#








Jednoduchy skript

!/bin/bash
sleep 10
#informacie o tom, aky je to linux
cat /etc/*release
sleep 15
# ako dlho bezi pocitac
sleep 15
uptime
uptime -s
uptime -p
sleep 15
# aka je vyuzita RAM
free -h

#sleep 31557600

echo "konecne som skoncil"

streda 11. decembra 2019

Inštalácia Centos8 - jednoducho

Ako som inštaloval Centos8?



1. stiahol som si ISO 


zo stránky: http://isoredirect.centos.org/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso

pozor, má 6.6GB

2. Otvorím si virtualbox a vytvorím OS











3. spúšťam inštalačný obraz:





4. Volím jazyk: 




5. Vyhodí sa mi inštalačná obrazovka


Čo je tu dôležité: (zadať mu Source - Local media, destination- 1 disk všetko, rozbehať sieť,  časové pásmo, prípadne pozrieť, čo chcem nainšťalovať)




A: Zadať mu source : môžem mu ponechať source, tj. bude to všetko ťahať z ISO, ktoré som mu zadal:



B: Destination, tj. cieľ, kam budeme inštalovať. (V našom prípade len na 1 disk a partície mu necháme, nech si rozdelí.)





C: Rozchodíme sieť: necháme, nech si ťahá z DHCP protokolu:



D: použijeme hostname v tom istom okne: /V mojom prípade HanSolo





E: Hodnoty máme vyplnené, môžeme spustiť inštaláciu:



6. Zadáme heslo pre roota a vytvoríme užívateľa: 



7. Čakáme na ďalšie kroky:



8. rebootneme 


9. Už ideme do GRUBu






utorok 10. decembra 2019

Runlevely

Ako som hovoril, spustil som runlevely v GUI a v CLI

pre GUI: GUI = graphical user interface

mrazik@panther ~]: runlevel
N 5
[mrazik@panther ~]:






pre CLI (CLI= command line)

[root@moricko~]# runlevel
N 3
[root@moricko~]#


date
Tue Dec 10 10:46:13 CET 2019

nedeľa 8. decembra 2019

Príkaz who s niektorými prepínačmi

Dnes si trochu predstavíme príkaz who.

(# v bashi znamená komentár, tu to bude pred prepínačom takisto.)

Príkaz who slúži na to, aby nám ukázal, kto je pripojený na našom operačnom systéme.

Ako vidíte, som tu len ja:


martin@guliverkel:~$ who
martin   tty7         2019-12-08 09:08 (:0)
martin   pts/0        2019-12-08 09:08 (:0)
martin   pts/1        2019-12-08 11:34 (:0)


príkaz má ale niektoré zaujímavé prepínače.


# ukáže nám v ľudskom tvare, kedy nabootoval systém. Ako vidíte, systém sa nabootoval o 09:04:

who -b

martin@guliverkel:~$ who -b 
         system boot  2019-12-08 09:04
martin@guliverkel:~$


# who -a znamená all, tj. máme tám informáciu o tom, kedy systém nabootoval, aký používa runlevel, kto je prihlásený a podobne

martin@guliverkel:~$ who -a
           system boot  2019-12-08 09:04
           run-level 5  2019-12-08 09:04
LOGIN      tty1         2019-12-08 09:04               639 id=tty1
martin   + tty7         2019-12-08 09:08 02:34        1117 (:0)
martin   + pts/0        2019-12-08 09:08 02:30        1200 (:0)
martin   - pts/1        2019-12-08 11:34   .         11369 (:0)


# who -r napíše informáciu o runleveli

martin@guliverkel:~$ who -r
         run-level 5  2019-12-08 09:04

(Čo je to runlevel? Tu som o tom napísal článok, kde to vysvetľujem. Jednou vetou povedané, operačný systém sa rozhoduje, či má mať grafické prostredie, iba príkazový riadok alebo tzv. single mode.)



# celkom sypmatický prepínač je aj -u ako users. Napíše vám ako dlho je užívateľ prihlásený.

# who -u

martin@guliverkel:~$ who -u
martin   tty7         2019-12-08 09:08 02:57        1117 (:0)

Čo je to číslo 1117? je to PID: pozri tu:

root@guliverkel:/home/martin# ps aux | grep 1117
martin    1117  0.0  0.0   4276  1572 ?        S    09:08   0:00 /bin/sh /usr/bin/startkde


Obrázok: https://www.tecmint.com/linux-who-command-examples/


článok som napísal:

martin@guliverkel:~$ date
Sun Dec  8 12:04:20 CET 2019

Boot proces - jednoducho

Boot počítača:


Keď zapneme počítač, server, RPI alebo niečo, kde je nainštalovaný Linux, prebehne pár krokov.

1. BIOS
2. MBR
3. GRUB
4. Kernel
5. init
6. runlevel



1. BIOS proces

Basic input/output system. Načítajú sa najjednoduchšie vstupno-výstupné zariadenia.

2. MBR

je to len 512 kb súbor, ktorý spustí proces bootovania. (bootovanie znamená spúšťanie.) MBR je master boot record, tj. je to záznam, kde sa nachádzajú informácie na spúšťanie ďalších procesov. Predstavte si, keď otvoráte obchod. Toto je niečo ako kľúč, ktorým otvoríte dvere.(Musíte ale aj ďalšie veci otvoriť, tj. vypnúť alarm, zapnúť počítače, rozchodiť si pokladne, dať tam peniaze, atď.)

3. GRUB

Najjednoduchšie vysvetlenie: ide o tabuľku, ktorá vám vyberá, ktorý operačný systém (s ktorým konkrétnym jadrom chcete zapnúť.)

4. KERNEL

Kernel je jadro operačného systému Linux. Je to mozog alebo srdce operačného systému, stará sa o všetko.

5. init

Keď sa zapne operačný systém, init je úplne prvý proces. (Ten proces sa stará o všetky ostatné procesy, pokiaľ to ešte nevedia. Spúšťa ich, zapína, pripája disky, zapína sieť, atď...)

Čitali ste Na západe nič nové a pamätáte si na Katza? Ak nie, najprv prečítajte knihu, lebo nepochopíte bootovanie v linuxe. Init je ako Katz, tiež sa o všetkých staral.

6. runlevel

Runlevel je spôsob práce. Pokiaľ chcete pozerať Ramba, musíte mať nainštalované grafické prostredie. grafické prostredie ==GUI 
úloha: napíšte príkaz runlevel v grafickom prostredí.


Servery nepotrebujú často grafické prostredie, ale zároveň nemôžete pozerať ramba.

Uloha: Napíšte príkaz runlevel tu.  (v príkazovom riadku.)

Pomocou runlevelu vieme určovať, ktorá služba má byť zapnutá po reštarte operačného systému.  (Napríklad webový server, poštový server, rambo server.)



článok bol napísaný:

martin@guliverkel:~$ date
Sun Dec  8 11:55:56 CET 2019

piatok 6. decembra 2019

Verzia operačného systému

V ako linuxovom prostredí sa pohybujem?

Ako všetci dobre vieme, Linuxy sa od seba líšia. Všetko to začalo v roku 1957, keď vypustili do vesmíru Lajku. Nudiť vás ale Berkeleyho inštitútom, MIT a inými vecami nebudem. (Keď to inak veľmi chcete vedieť, Linus Torvalds hral v roku 1991 Princa a počas toho ako nevedel zabiť kostru, vymyslel Linux)

Linuxy sa menia, majú medzi sebou inú štruktúru, iný systém práce, iné konfiguračné súbory a podobne. V adresári /etc/ sa nachádzajú informácie o tom, aký je to operačný systém. (Niektoré systémy, dokonca aj SLES 15), majú v /etc/ adresári súbor os-release

martin@guliverkel:~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"




(Niektoré žiaľ nie, preto sa odporúča používať hviezdičku)

martin@guliverkel:~$ cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"


Niekde nájdeme aj balíček lsb a môžeme použiť tento príkaz:
martin@guliverkel:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.9 (stretch)
Release:        9.9
Codename:       stretch





Pre väčšie hrabanie v distribúciach odporúčam toto: https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg


a ešte toto: https://linuxconcept.com/top-10-linux-distribution-2019/

článok bol napísaný:

 martin@guliverkel:~$ date
Fri Dec  6 07:21:10 CET 2019

streda 4. decembra 2019

Klonovanie adresáru

Úvod

Potrebujem klonovať adresár:

1. mám užívateľov v /home/ , potrebujem ich zmigrovať do /home/users/

2. Použijem cp -rp

 cp poznáme

-r rekurzívne

-p zachováva pôvodné údaje, tj. mode, ownership, timestamp


Prakticky: 


Toto som potreboval prekopírovať

[root@reserv-15-vpn-fw ~]# ls -l /home/marcopolo/
total 604
-rw-r--r--. 1 marcopolo marcopolo 581843 Dec  4 14:41 moduli
-rw-r--r--. 1 marcopolo marcopolo   2276 Dec  4 14:41 ssh_config
-rw-------. 1 marcopolo marcopolo   3907 Dec  4 14:41 sshd_config
-rw-r-----. 1 marcopolo marcopolo    227 Dec  4 14:41 ssh_host_ecdsa_key
-rw-r--r--. 1 marcopolo marcopolo    162 Dec  4 14:41 ssh_host_ecdsa_key.pub
-rw-r-----. 1 marcopolo marcopolo    387 Dec  4 14:41 ssh_host_ed25519_key
-rw-r--r--. 1 marcopolo marcopolo     82 Dec  4 14:41 ssh_host_ed25519_key.pub
-rw-r-----. 1 marcopolo marcopolo   1679 Dec  4 14:41 ssh_host_rsa_key
-rw-r--r--. 1 marcopolo marcopolo    382 Dec  4 14:41 ssh_host_rsa_key.pub


príkaz:   cp -rp

[root@reserv-15-vpn-fw ~]# cp -rp /home/marcopolo/ /home/users

Výsledok

Čo nám vytvorilo?


[root@reserv-15-vpn-fw ~]# ls -l /home/users/marcopolo/
total 604
-rw-r--r--. 1 marcopolo marcopolo 581843 Dec  4 14:41 moduli
-rw-r--r--. 1 marcopolo marcopolo   2276 Dec  4 14:41 ssh_config
-rw-------. 1 marcopolo marcopolo   3907 Dec  4 14:41 sshd_config
-rw-r-----. 1 marcopolo marcopolo    227 Dec  4 14:41 ssh_host_ecdsa_key
-rw-r--r--. 1 marcopolo marcopolo    162 Dec  4 14:41 ssh_host_ecdsa_key.pub
-rw-r-----. 1 marcopolo marcopolo    387 Dec  4 14:41 ssh_host_ed25519_key
-rw-r--r--. 1 marcopolo marcopolo     82 Dec  4 14:41 ssh_host_ed25519_key.pub
-rw-r-----. 1 marcopolo marcopolo   1679 Dec  4 14:41 ssh_host_rsa_key
-rw-r--r--. 1 marcopolo marcopolo    382 Dec  4 14:41 ssh_host_rsa_key.pub


Zdroj: https://www.howtogeek.com/442101/how-to-move-your-linux-home-directory-to-another-hard-drive/

Klonovanie v praxi:-)

Príkaz history s časom

Úvod


História v linuxe je dôležitá. Keď spravujeme mnoho serverov, nemusíme si všetko vždy pamätať. Nie je to predsa Hviezdoslavov Kubín. Isto nebudeme mať v pamäti všetky IP, porty a ďalšie gebuziny.

Ako si zobrzím históriu? Príkazom history. Ako tu:

martin@guliverkel:~$ history
    1  su
    2  df -hTP
    3  su
    4  s
    5  su
    6  df -h
    7  su
    8  df -h
    9  su
   10  history
martin@guliverkel:~$




vidíte, urobil som tieto príkazy ako užívateľ martin. (Každý užívateľ má svoju históriu.) Tu je užívateľ root:

root@guliverkel:/home/martin# history
    1  lspci 
    2  apt update
    3  apt-cache search iwlwifi
    4  apt install firmware-iwlwifi
    5  ip a 
    6  apt install net-tools
    7  ifconfig 
    8  reboot 
    9  ifconfig 
   10  ifconfig  -a
   11  apt install mc
   12  apt install kde-plasma-desktop
   13  apt install fsprotect
   14  apt install firmware-linux firmware-linux-nonfree
   15  apt install firmware-realtek
   16  mc
   17  df -h
   18  reboot 
   19  apt install wicd
   20  apt install wicd vlc krusader chromium libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw ark 
   21  cat /etc/resolv.conf 
   22  echo "kamarat mi poradil, ze to je dobre" > /boot/grub/grub.cfg
   23  history > /root/prve_kroky.txt

Tie čísla sú dôležité, môžem pracovať s výkričníkom. Výkričník+číslo, vykoná mi príkaz: napr. príkaz 10

root@guliverkel:/home/martin# !10
ifconfig  -a
eth91: =nepojde inernet



Timestamp   


Čo tak si urobiť históriu s tým, aby som vedel, kedy som ju spúšťal. Tj. vytvorme si dátum a čas:

Ako na to?

1. krok: zapnem google
2. krok: píšem do googlu: linux history with timestamp
3. krok. Defiujem si premennú HISTTIMEFORMAT
4. krok. takto: HISTTIMEFORMAT="%d/%m/%y %T "
5. krok: napíšeme príkaz history teraz. Tu je výstup

56  04/12/19 05:57:44 ls
   57  04/12/19 05:57:53 echo a ja taka carna
   58  04/12/19 05:57:57 pwd
   59  04/12/19 05:58:34 chmod 777 /var/log/


Chceme to aj do budúcna (tj. pre ďalšie prihlásenie, preto si treba premennú exportovať.) do súboru .bashrc - bodka je skrytý súbor

Takto:
root@guliverkel:/home/martin# echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc 

Odhlásil som sa a vidím históriu opäť:

root@guliverkel:/home/martin# echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc 
root@guliverkel:/home/martin# exit
martin@guliverkel:~$ su
Password:
root@guliverkel:/home/martin# history
    1  04/12/19 06:01:18 lspci 
    2  04/12/19 06:01:18 apt update
    3  04/12/19 06:01:18 apt-cache search iwlwifi
    4  04/12/19 06:01:18 apt install firmware-iwlwifi
    5  04/12/19 06:01:18 ip a 
    6  04/12/19 06:01:18 apt install net-tools
    7  04/12/19 06:01:18 ifconfig 
    8  04/12/19 06:01:18 reboot 
    9  04/12/19 06:01:18 ifconfig 
   10  04/12/19 06:01:18 ifconfig  -a
   11  04/12/19 06:01:18 apt install mc
   12  04/12/19 06:01:18 apt install kde-plasma-desktop
   13  04/12/19 06:01:18 apt install fsprotect
   14  04/12/19 06:01:18 apt install firmware-linux firmware-linux-nonfree
   15  04/12/19 06:01:18 vlc /data/customer/turkish_rambo

Ďalšie učenie: https://linuxize.com/post/history-command-in-linux/

utorok 3. decembra 2019

ls -lisa a ls -lisha

V linuxe príkaz existuje príkaz ls, ktorý nám ukazuje, čo sa nachádza v danom adresári.

[martin@superserver ~]$ ls
76                   Downloads                  vyplata.csv
alias.txt            home_directories           
backup               


ls ma množstvo šikovných prepínačov. Dnes sa napríklad zoznámime s Lisou a s Lishou.

ls -lisa

[martin@miesizelezo ~]$ ls -lisa
total 480
2155509820   4 drwx------   43 martin martin   4096 Dec  2 15:47 .
      1024  64 drwxr-xr-x 1408 root     root      36864 Nov 29 14:18 ..
1343713296   0 drwxrwxr-x    2 martin martin    28 Sep 13 14:12 76
1208404017   0 drwx------    3 martin martin     25 Feb 13  2019 .adobe
2167104559   4 -rw-rw-r--    1 martin martin    124 Mar  8  2019 alias.txt
3765096511   4 drwxrwxr-x   18 martin martin   4096 Oct 30 07:55 backup

tu máme výpis. Čo je lisa? resp. lisha?

ls -lisa

l- zobrazí výpis, čo sa kde nachádza, kto je vlastník (martin v tomto prípade), veľkosť súboru a kedy to bolo zmenené
i -zobrazí inodes (prvé číslo: napr: 1343713296 )
s- vypíše veľkosť daných súborov v blokoch
a- all (ako skoro všade v linuxe)


keby sme chceli dať lisha, je to to isté.

h- human redeable, ukáže nám tvar v ľudskom oku: (teda, či ide o kb, mb, gb, atď)

[martin@sindibad ~]$ ls -lisha
total 480K
2155509820 4.0K drwx------   43 martin martin 4.0K Dec  2 15:47 .
      1024  64K drwxr-xr-x 1408 root     root      36K Nov 29 14:18 ..
1343713296    0 drwxrwxr-x    2 martin martin   28 Sep 13 14:12 76
1208404017    0 drwx------    3 martin martin   25 Feb 13  2019 .adobe
2167104559 4.0K -rw-rw-r--    1 martin martin  124 Mar  8  2019 alias.txt
3765096511 4.0K drwxrwxr-x   18 martin martin 4.0K Oct 30 07:55 backup

streda 20. novembra 2019

Základy Linuxu I - prvé kroky

Základy Linuxu je seriál, kde sa zverejňujú základy linuxu.


Sedíte v práci a hráte Supermaria. Zrazu za Vami príde šéf s dychtivým pohľadom a do očú sa zahľadí. "Budeš spravovať 300 linuxových serverov." A čo teraz?

V prvom rade musíme pochopiť najzákladnejšie veci.

1) Čo je Linux?

2) Ako sa pripájam na server?

3) Aké príkazy mám písať?

4) Ako pracovať s príkazmi?


Bod 1:

Linux je operačný systém. Beží na ňom všeličo, vrátane webových služieb. Nebyť Linuxu, nebudeme si môcť vychutnať Repete. Nič sa neboj drahý priateľu, o pár dní pochopíš, že Linux je super.

Za logo Linuxu považujeme tučniaka. Volá sa Tux a je to veľký sympaťák. Má samé dobré vlastnosti. Nikdy nepapuľuje, vzorne ťa poslúcha a čaká, že ho občas nakŕmiš.

Bod 2: 

Ako sa pripája na server?

Najprv si predstavme obrovskú miestnosť niekdde na Madagaskare, kde je stále klíma, chladenie a fúkanie. Predstavme si superobrovský sklad, kde sú všelijaké káble a nejaké čudá, čo blikajú nonstop.

To, čo bliká, to sú servery. Je to niečo ako počítač, len to nemá monitor.

Keďže to je na Madagaskare v klimatizovanej miestnosti, musíme sa pripájať vzdialene. Šéf nás nepošle na služobku do takej marie. Bo treba šetriť.

Vzdialene sa pripájame cez ssh protokol. Vo windowsoch používame program putty, v linuxoch sa hlásime takto.

A) Otvorím konzolu
B) píšem
C) ssh názov_užívateľa zavináč názov serveru/IP
D) dám enter

v praxi

ssh root@dukenukem

no a teraz som na servery a môžem pracovať.

3) Aké prvé príkazy použijem:

Chceme vedieť ako sa voláme: hostname

hostname
hostname -f je lepší, lebo ukáže celý full hostname

Chcme vedieť ako dlho beží server:

uptime

Tu je výstup:
martin@guliverkel:~$ uptime
 18:03:04 up  1:15,  3 users,  load average: 0.07, 0.26, 0.46


who -b

Tu je výstup:

martin@guliverkel:~$ who -b
         system boot  2019-11-20 16:47

4) Ako hľadať pomoc?

Linuxy majú príkazy a tie majú prepínače.

Predstavte si, že ste RAMBO. Idete po ulici a chce sa niekam dostať, pozriete do diali, ale nevidíte až tak dobre. Preto vezmete ďalekohľad.

To isté je s príkazmi

napríklad príkaz ls

ls sa podobne ako Rambo pozerá.

napíšte príkaz ls
martin@guliverkel:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos




vidíte? Ale vy chcete aj vedieť, kedy sa to menilo, aké je to veľké a podobne. Podobne ako Rambo, vytiahnete pomôcku. (To je v tomto prípade parameter l)

ls -l


martin@guliverkel:~$ ls -l
total 32
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Desktop
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Documents
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Downloads
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Music
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Pictures
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Public
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Templates
drwxr-xr-x 2 martin martin 4096 Dec 22  2018 Videos


Teraz vidíte viac údajov.

Na dnes šicko. Nezabúdajte: YNWA!