==========================================
. Dev + Ops = DevOps. . 10 prostych – acz fajnych – jednolinijkowców
Jeśli słyszeliście, że linia poleceń jest mocna,
że warto się jej nauczyć, czy inne takie
pogłoski…
to dobrze słyszeliście.
A jak chcecie zobaczyć, zapraszamy!
Jacek Jagieła oraz Tomasz Borek
InfoSys Symentis, tu: EPAM
==========================================
Byście mogli wstać i sobie pójść, albo świadomie zostać:
. I wybierzmy następny alias (history, |, awk)
. II popraw jedną zmienną w wielu plikach (sed, perl)
. III która to ścieżka była? (systemd)
. IV znajdź i zrób (find, exec)
. V zestresujmy komputer (stress)
. VI zmieńmy coś na setkach serwerów (for, ansible)
. VII jak plotą się gałęzie w Gicie (git log)
. VIII przepatrz JSONa (jq)
. IX wątek Javy co żre procesor (ps, jps, jstack)
. X dlaczego moja siec jest wolna (curl)
==========================================
. jak myślisz nad nowym aliasem . albo jak chcesz wiedzieć w czym ostatnio siedzisz
history | awk '{print $2}' | sort |
uniq -c | sort -n | tail
==========================================
history | awk '{print $2}' | sort |
uniq -c | sort -n | tail
. historia w kolumnach . 2 kolumna . sortowanie . unikatowe wpisy zliczone . sortowanie po numerach . 10 ostatnich
==========================================
history | awk '{print $2}' | sort
| uniq -c | sort -nr | head
==========================================
history | awk '{print $2}' | sort
| uniq -c | sort -nr | head
Przypominajka:
history | awk '{print $2}' | sort
| uniq -c | sort -n | tail
==========================================
grep -Hril '192.168.1.10'
| xargs sed -i 's/192.168.1.10/10\.42\.0\.11/'
==========================================
systemd-path
==========================================
find . -name "*.java" -exec vim {} \;
==========================================
stress -io 4 --cpu 4
Do podglądu przydaje się:
htop
==========================================
for i in samba httpd mysqld;
do ssh -v 127.0.0.1 "~/service $i status"; done
==========================================
git log --graph --decorate --oneline
[--reflog] --all
==========================================
cat cokolwiek.json | jq
curl https://api.github.com/repos/LIttleAncientForestKami/shiny-octo-doodle/forks | jq -r '.[1]'
==========================================
. zacznijmy od tego - jakiej Javy?
.. ps -ef | grep java
==========================================
. zacznijmy od tego - jakiej Javy?
.. ps -ef | grep java
.. pgrep java
==========================================
. zacznijmy od tego - jakiej Javy?
.. ps -ef | grep java
.. pgrep java
.. jps
Alternatywą: jcmd
==========================================
. zacznijmy od tego - jakiej Javy?
.. ps -ef | grep java
.. pgrep java
.. jps
. mając PID:
.. jstack PID
.. ps -p PID
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -m
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -mo lwp
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -mo lwp,c
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -mo lwp,c -p $1
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -mo lwp,c -p $1 | sort -g
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
Po kolei:
ps -mo lwp,c -p $1 | sort -gk 2
==========================================
ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1
==========================================
curl
➜ ~ ySlow.sh bato.to [% 23:05:32] checking bato.to
DNS lookup : 3,512 Connect to server (TCP) : 3,814 Connect to server (HTTP/S) : 0,000 Time from start until transfer began: 3,815 Time for redirection (if any) : 0,000 Total time before transfer started : 4,943
==========================================
. -w @plikZFormatemWyjścia
- czyli jak wyjście ma wyglądać
. -o /dev/null
- cokolwiek ściągam, wyrzucam
. -s
- jak _s_ilent, czyli po cichu
. curl -w @[/pełna-ścieżka-tutaj/]netDebug.conf -o /dev/null -s $1
==========================================
Tekst i zmienne curla, wyciągnięte z man
a.
\n
Połączenie TCP / sam DNS: %{time_connect}/%{time_namelookup}\n
Czas nim transfer się zaczął: %{time_starttransfer}\n
Stworzony dzięki man curl
i /appconnection
Generalnie, przeczytajcie całą sekcję --write-out
/ -w
==========================================
. autentykacja . weryfikacja, że coś żyje . RESTowe API (GitHub, Elasticsearch...) . ściąganie stron / plików
==========================================
. Linia poleceń jest fajna
. Jest potężna
. Jest szybka
. Filozofia Unixa - buduj z klocków (|
)
A na koniec...
==========================================
byzanz-recorder -d 20 -o output.gif
==========================================
notify-send "Na koniec" "Powodzenia" --icon=face-tired
====================
Jacek Jagieła - pracuje w InfoSys jako konsultant bazo-danowy i devopsowy, głównie Oracle, choć zdecydowanie nie tylko. Ostatnio dużo podróżuje do Holandii, gdzie przejmuje spory system o Oracle oparty https://www.linkedin.com/in/jacek-jagiela-707a4b3a
Tomek Borek - reprezentuje wielu klientów, obecnie największym z nich jest Epam, dla którego Tomek prowadzi Java Academy, program, gdzie młodzi programiści są szkoleni przez pełne trzy miesiące, "by nie byli już młodzi" ;-)