DevOps : Automation : Basic Command Line Tools 1වන් කොටස
DevOps : Automation : Basic Command Line Tools 1වන් කොටස
මම අද සිට ඔයාලට DevOps Automation ගැන කියාදෙන පාඩම් මාලාව අරම්බ කරනව. කොටස් 24කින් මෙම පාඩම් මාලාව අවසන් කරන්න කටයුතු කරල තියෙන්නෙ. දින 3කට වරක් කොටස බැගින් publish කරන්න තමා මූලික සැලසුම් සකස් කරල තියෙන්නෙ. දැන් ඔයාලට මූලික UNIX / Linux කමාන්ඩ්ස් ගැන හොද දැනුමක් තිබෙන නිසා මෙම පාඩම් මාලාව හොදින් අවබෝධ කරගැනීමට පුළුවන්.අපි අද මුලින්ම කථා කරන්නෙ මේ පාඩම් මාලාව ඉදිරියට කරගෙන යාමට අපිට අවශ්ය වන මූලික කමාන්ඩ්ස් ලයින් ටූල්ස් (Basic Command Line Tools) ගැනයි.
මම මේ ටූල්ස් ටික මුලින්ම දෙන්නෙ ඉදිරියේදි Automation ක්රියාවලියට අපිට් ඒවා යොදාගැනීමට ඇති හැකියාව නිසයි.
1) ip
අපේ IP address එක පිළිබද තොරතුරු ලබාගැනීමට බාවිතා කරන tool එකකි.
ට්රයි ip address show හෝ ip addr sh
දැන් බලමු තෝරාගත් එක interface එකක විස්තර ලබාගන්නා ආකාරය.
ට්රයි ip addr sh wlp2s0
අපි මෙහිදී මෙන්න මේ විදියේ format එකක් බාවිතා කරනව. ip addr add <IP address>/<CIDR> dev <device>
මෙතන <CIDR> කියල කියන්නෙ අපේ IP එකට අදාල netmask එක දෙන්න ඕන Classless Inter-Domain Routing (CIDR) කියන format එකට.
උදාහරණයක් විදියට 255.255.255.0 අපිට /24 ලෙස නිරුපනය කරන්න පුළුවන්.
මම දැන් මගේ wlp2s0 එකට තවත් IP එකක් add කරන්න හදන්නෙ. අපිට මේවිදියට add කරන්න පුළුවන් කම ලැබෙන්නෙ root privileges ඇති විටයි එනිසා මම sudo යොදා ගනිමින් කමාන්ඩ් එක රන් කරනව
ට්රයි sudo ip addr add 192.168.43.77/24 dev wlp2s0
ට්රයි ip addr sh wlp2s0
අලුත් IP එකට ping පාරකුත් දල බලමු.
ට්රයි ping 192.168.43.77 -c 5
ට්රයි sudo ip addr del 192.168.43.77/24 dev wlp2s0
ට්රයි ip addr sh wlp2s0
192.168.43.77 එක wlp2s0 කියන interface එකෙන් ඉවත්වෙලා.
අපිට මේ ip කමාන්ඩ් එක බාවිතා කරල අපේ physical interfaces ටික UP සහ DOWN කරන්නත් පුළුවන්. මේ බලන්න කරන ආකාරය.
මුලින්ම down කරන ආකාරය දෙස බලමු.
ට්රයි sudo ip link set wlp2s0 down
ට්රයි ip addr sh wlp2s0
ට්රයි sudo ip link set wlp2s0 up
ට්රයි ip addr sh wlp2s0
මුලින්ම සියලුම interfaces වල basic network statistics ලබාගන්නා ආකාරය බලමු.
ට්රයි ip -s link
අපිට එක interface එකක විස්තර ලබාගන්න අවශ්ය විට අපි මේ කමාන්ඩ් එක යොදාගන්නව
ට්රයි ip -s link ls wlp2s0
ඔයාලට පේනව නේද මම ls සමග interface එකේ නම ලෙස "wlp2s0" යොදාගෙන තියෙනව.
අපිට ඉහත කමාන්ඩ් එකට අමතර -s switch එකක් එකතුකර ගැනිමෙන් ලැබෙන විස්තර ප්රමාණය වැඩිකරගන්න පුළුවන්.
ට්රයි ip -s -s link ls wlp2s0
DevOps : Automation : Basic Command Line Tools 1වන් කොටස
මම අද සිට ඔයාලට DevOps Automation ගැන කියාදෙන පාඩම් මාලාව අරම්බ කරනව. කොටස් 24කින් මෙම පාඩම් මාලාව අවසන් කරන්න කටයුතු කරල තියෙන්නෙ. දින 3කට වරක් කොටස බැගින් publish කරන්න තමා මූලික සැලසුම් සකස් කරල තියෙන්නෙ. දැන් ඔයාලට මූලික UNIX / Linux කමාන්ඩ්ස් ගැන හොද දැනුමක් තිබෙන නිසා මෙම පාඩම් මාලාව හොදින් අවබෝධ කරගැනීමට පුළුවන්.අපි අද මුලින්ම කථා කරන්නෙ මේ පාඩම් මාලාව ඉදිරියට කරගෙන යාමට අපිට අවශ්ය වන මූලික කමාන්ඩ්ස් ලයින් ටූල්ස් (Basic Command Line Tools) ගැනයි.
මම මේ ටූල්ස් ටික මුලින්ම දෙන්නෙ ඉදිරියේදි Automation ක්රියාවලියට අපිට් ඒවා යොදාගැනීමට ඇති හැකියාව නිසයි.
1) ip
අපේ IP address එක පිළිබද තොරතුරු ලබාගැනීමට බාවිතා කරන tool එකකි.
ට්රයි ip address show හෝ ip addr sh
මෙමගින් interfaces සියලගේම IP address . MAC address සහ state යනාදිය එකවර අපිට බලාගන්න පුළුවන්.nix@Dell ~ $ ip addr sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether ec:f4:bb:72:e7:39 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 5128sec preferred_lft 5128sec
inet6 fe80::b01b:6527:406b:8ace/64 scope link
valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:b1:00:b2:48 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 scope global docker0
valid_lft forever preferred_lft forever
nix@Dell ~ $
දැන් බලමු තෝරාගත් එක interface එකක විස්තර ලබාගන්නා ආකාරය.
ට්රයි ip addr sh wlp2s0
දැන් අපි බලමු interface එකකට IP address එකක් add කරගන්නා ආකාරය.nix@Dell ~ $ ip addr sh wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 4794sec preferred_lft 4794sec
inet6 fe80::b01b:6527:406b:8ace/64 scope link
valid_lft forever preferred_lft forever
nix@Dell ~ $
අපි මෙහිදී මෙන්න මේ විදියේ format එකක් බාවිතා කරනව. ip addr add <IP address>/<CIDR> dev <device>
මෙතන <CIDR> කියල කියන්නෙ අපේ IP එකට අදාල netmask එක දෙන්න ඕන Classless Inter-Domain Routing (CIDR) කියන format එකට.
උදාහරණයක් විදියට 255.255.255.0 අපිට /24 ලෙස නිරුපනය කරන්න පුළුවන්.
මම දැන් මගේ wlp2s0 එකට තවත් IP එකක් add කරන්න හදන්නෙ. අපිට මේවිදියට add කරන්න පුළුවන් කම ලැබෙන්නෙ root privileges ඇති විටයි එනිසා මම sudo යොදා ගනිමින් කමාන්ඩ් එක රන් කරනව
ට්රයි sudo ip addr add 192.168.43.77/24 dev wlp2s0
දැන් චෙක් කරල බලමු.
ට්රයි ip addr sh wlp2s0
වැඩේ හරි wlp2s0 එකට 192.168.43.77 add වෙලා තියෙන්නෙ ඔය අපූරුවට.nix@Dell ~ $ ip addr sh wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 7051sec preferred_lft 7051sec
inet 192.168.43.77/24 scope global secondary wlp2s0
valid_lft forever preferred_lft forever
inet6 fe80::b01b:6527:406b:8ace/64 scope link
valid_lft forever preferred_lft forever
nix@Dell ~ $
අලුත් IP එකට ping පාරකුත් දල බලමු.
ට්රයි ping 192.168.43.77 -c 5
දැන් බලමු කොහොමද අපි අන්තිමට add කරපු IP එක interface එකෙන් ඉවත් කරන්නෙ කියල. එක කරන්නෙ ip addr del <IP address>/<CIDR> dev <device> මෙන්න මේ ආකාරයට.nix@Dell ~ $ ping 192.168.43.77 -c 5
PING 192.168.43.77 (192.168.43.77) 56(84) bytes of data.
64 bytes from 192.168.43.77: icmp_seq=1 ttl=64 time=0.073 ms
64 bytes from 192.168.43.77: icmp_seq=2 ttl=64 time=0.029 ms
64 bytes from 192.168.43.77: icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from 192.168.43.77: icmp_seq=4 ttl=64 time=0.055 ms
64 bytes from 192.168.43.77: icmp_seq=5 ttl=64 time=0.056 ms
--- 192.168.43.77 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3996ms
rtt min/avg/max/mdev = 0.029/0.052/0.073/0.016 ms
nix@Dell ~ $
ට්රයි sudo ip addr del 192.168.43.77/24 dev wlp2s0
දැන් චෙක් කරල බලමු .nix@Dell ~ $ sudo ip addr del 192.168.43.77/24 dev wlp2s0
nix@Dell ~ $
ට්රයි ip addr sh wlp2s0
nix@Dell ~ $ ip addr sh wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 6635sec preferred_lft 6635sec
inet6 fe80::b01b:6527:406b:8ace/64 scope link
valid_lft forever preferred_lft forever
nix@Dell ~ $
192.168.43.77 එක wlp2s0 කියන interface එකෙන් ඉවත්වෙලා.
අපිට මේ ip කමාන්ඩ් එක බාවිතා කරල අපේ physical interfaces ටික UP සහ DOWN කරන්නත් පුළුවන්. මේ බලන්න කරන ආකාරය.
මුලින්ම down කරන ආකාරය දෙස බලමු.
ට්රයි sudo ip link set wlp2s0 down
චෙක් කරමු මෙලෙසnix@Dell ~ $ sudo ip link set wlp2s0 down
nix@Dell ~ $
ට්රයි ip addr sh wlp2s0
දැන් අපි down කරපු interface එක මේ ආකාරයට up කරමු.nix@Dell ~ $ ip addr sh wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 6408sec preferred_lft 6408sec
nix@Dell ~ $
ට්රයි sudo ip link set wlp2s0 up
දැන් චෙක් කරල බලමුnix@Dell ~ $ sudo ip link set wlp2s0 up
nix@Dell ~ $
ට්රයි ip addr sh wlp2s0
අපි ඊළගට ඉගෙන ගනිමු මේ ip tool එක බාවිතා කරල අපේ networking stack අවුල් තියෙනවද කියල සොයා බලන ආකාරය.nix@Dell ~ $ ip addr sh wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
inet 192.168.43.74/24 brd 192.168.43.255 scope global dynamic wlp2s0
valid_lft 6383sec preferred_lft 6383sec
nix@Dell ~ $
මුලින්ම සියලුම interfaces වල basic network statistics ලබාගන්නා ආකාරය බලමු.
ට්රයි ip -s link
අපිට මේ කමාන්ඩ් එකෙන් සියලුම interfaces ටික හා ඒවා configure කර ඇති options ටික දැක ගන්න පුළුවන්. උදාහරණ ලෙස multicast එක enable කරලද නැතිද වග . current state එක UP ද DOWN ද වග.nix@Dell ~ $ ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
174551 1984 0 0 0 0
TX: bytes packets errors dropped carrier collsns
174551 1984 0 0 0 0
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether ec:f4:bb:72:e7:39 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
74712694 77068 0 0 0 0
TX: bytes packets errors dropped carrier collsns
10146384 58216 0 0 0 0
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:b1:00:b2:48 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
nix@Dell ~ $
අපිට එක interface එකක විස්තර ලබාගන්න අවශ්ය විට අපි මේ කමාන්ඩ් එක යොදාගන්නව
ට්රයි ip -s link ls wlp2s0
nix@Dell ~ $ ip -s link ls wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
2887162 5981 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1321175 6229 0 0 0 0
nix@Dell ~ $
ඔයාලට පේනව නේද මම ls සමග interface එකේ නම ලෙස "wlp2s0" යොදාගෙන තියෙනව.
අපිට ඉහත කමාන්ඩ් එකට අමතර -s switch එකක් එකතුකර ගැනිමෙන් ලැබෙන විස්තර ප්රමාණය වැඩිකරගන්න පුළුවන්.
ට්රයි ip -s -s link ls wlp2s0
අපිට පුළුවන් ip ටූල් එකෙන් දැන් පොඩි පොඩි වැඩ ටිකක් කරගන්න අපි ඊළගට බලමු අපේ සිස්ටම් එකේ තියෙන TCP / UDP connections ගැන තොරතුරු සොයාගන්න ආකාරය බලමු. ඔයාලට මතක ඇති මම මේ පාඩම් මාලාව තුල netstat -apnut කියල කමාන්ඩ් එකක් බාවිතා කරා. අපි ඔය netstat කියන එකත් tool එකක් විදියට තමයි සලකන්නෙ. නමුත් මම දැන් කථා කරන්නෙ netstat ගැන නොවේ. ඊට වඩා functions ටිකක් වැඩිපුර තියෙන ටූල් එකක් ගැන. අපි දැන් එම ටූල් එක ගැන ඉගෙන ගනිමු.nix@Dell ~ $ ip -s -s link ls wlp2s0
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 64:5a:04:b8:d8:be brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
2887228 5982 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
1321269 6230 0 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 4
nix@Dell ~ $
ort Peer Address


