ååã¯ãã·ã§ã«ãšã·ã§ã«ã¹ã¯ãªãããã©ã®ãããªãã®ããšããããšãšããã¹ã®åãæ±ãã«ã€ããŠåŠã³ãŸãããä»åã¯ãã®ç¶ããšããŠãå®éã«Pythonãã·ã§ã«ã¹ã¯ãªããã®ããã«äœ¿ãããã®å®äŸã玹ä»ããŸãã
ã·ã§ã«ã®åŒã³åºã
ã·ã§ã«ã¹ã¯ãªããã¯åå説æããããã«ããOSã®ã³ãã³ãã®åŒã³åºãããšãã·ã§ã«ã¹ã¯ãªããã®ææ³ãã§æ§æãããŠããŸããPythonãã·ã§ã«ã¹ã¯ãªããã®ããã«äœ¿ãã«ã¯ãPythonã§OSã®ã³ãã³ããåŒã³åºããããã®çµæãå¿ èŠã«å¿ããŠãPythonã®ææ³ãã§åŠçããããšã§å®çŸã§ããŸããã€ãŸããPythonã§ã©ã®ããã«OSã®ã³ãã³ããåŒã¹ãããšããããšããç¥ã£ãŠããã°ãç¹ã«æ°ããããšãåŠã°ãªããŠãPythonãã·ã§ã«ã¹ã¯ãªããã®ããã«äœ¿ãããšãå¯èœãªããã§ãã
PythonãOSã®ã³ãã³ããå©çšããã«ã¯ç¹å®ã®é¢æ°ãåŒã³åºãã ãã§ããã®ã§ããããã®å éšã«ã¯ä»¥äžã®æµãããããŸãã
PythonãšããŠã¯åã«ã·ã§ã«ã«ä»äºãäŸé Œãããã®çµæãç¿åŸããŠããã ãã§ãããåŒã³åºãããã·ã§ã«ã¯OSã«ã¢ã¯ã»ã¹ãè¡ããã³ãã³ãã«å¿ããã¢ã¯ã·ã§ã³ãkernelã§å®è¡ãããŠããŸãã
ã·ã§ã«ã¹ã¯ãªãããšããŠPythonã䜿ãåã«ãOSã®ã³ãã³ãã®åŒã³åºãæ¹ãæ±ã£ãŠããŸããŸããããã«ã¯ã以äžã®ãããª2éãã®æ¹æ³ããããŸãã
- os.system('COMMAND')
- commands.getoutput('COMMAND')
os.system颿°ã¯åŒæ°ã§åãåã£ãã³ãã³ããå®è¡ããŸããããã®è¿ãå€ã¯æåã倱æããè¿ãã ãã§ããäžæ¹ãcommands.getoutput颿°ã¯ã³ãã³ããå®è¡ãããšãã«ãæ¬æ¥ã¿ãŒããã«ã«è¡šç€ºãããã¹ãããã¹ããè¿ãå€ãšããŠè¿ããŸãããã®ã»ãã«ãsubprocessã¢ãžã¥ãŒã«ãäœ¿ãæ¹æ³ãªã©ãããããã¡ãã¯æ©èœçã«ãåªããŠããã®ã§ãããè€éãªã®ã§ä»åã¯å²æããŸãã
ã³ãã³ãã®å¿çããããªãåŒã³åºã
ãŸãæåã«os.systemã§ããå ·äœçã«è©ŠããŠã¿ãŸãã
import os
print(os.getcwd())
print(os.system('touch test_python.txt'))
print(os.system('ls -l'))
èŠãŠããã ããšãããããã«ããŸãæåã«çŸåšã®äœæ¥ãã£ã¬ã¯ããªã®æ å ±ã衚瀺ããæ¬¡ã«touchã³ãã³ãã§test_python.txtãšãããã¡ã€ã«ãäœæããŠããŸãããããŠæåŸã«'ls -l'ãšããŠçŸåšã®ãã£ã¬ã¯ããªã®ãã¡ã€ã«äžèЧãåºåããŠããŸãã
ãããå®è¡ãããšãããšãã°ä»¥äžã®ãããªåºåãåŸãããŸãã
/Users/yuichi/Desktop
0
0
äœæ¥ãã£ã¬ã¯ããªã¯å®è¡ç°å¢ã«ããç°ãªããŸãããæ³šç®ããŠæ¬²ããã®ã¯touchãšls -lã®è¡šç€ºçµæã0ãšãªã£ãŠããç¹ã§ããå ã«ãäŒãããããã«ãos.system颿°ã¯è¿ãå€ãæå(0) or 倱æ(0以å€)ãè¿ãã ããªã®ã§ãä»åã¯æåãè¿ã£ãŠããŠããŸãã確èªããŠã¿ããšè¡šç€ºãããäœæ¥ãã£ã¬ã¯ã㪠/Users/yuichi/Desktopã§test_python.txtãšãããã¡ã€ã«ã確èªã§ããã¯ãã§ãããã®ããã³ãã³ããå®è¡ãããŠããããšã«ééãã¯ãããŸããããã ãã³ãã³ããå®è¡ãããéã«è¡šç€ºãããæååãååŸã§ããŠããªãã®ã§ã'ls -l'ã«é¢ããŠã¯ãŸã£ãã䜿ãç©ã«ãªããªããšãããŸãã
è¡šç€ºçµæãååŸããã³ãã³ãåŒã³åºã
次ã¯ãå®éã«ç»é¢ã«è¡šç€ºãããæååãååŸããŠã¿ãŸããç¹ã«é£ããããšã¯ãªããå ã»ã©ã®os.system颿°ã®ä»£ããã«commands.getoutput颿°ã䜿ãã°ããã ãã§ãã
import os, commands
print(os.getcwd())
print(commands.getoutput('touch test_python2.txt'))
print(commands.getoutput('ls -l'))
ãããå®è¡ãããšä»¥äžã®ãããªåºåãè¿ã£ãŠããŸãã
/Users/yuichi/Desktop
total 17648
drwxr-xr-x 10 yuichi staff 340 Aug 28 15:10 CLV
-rw-r--r--@ 1 yuichi staff 283507 Aug 31 16:21 N7K_vs_Catalyst-an.png
drwxr-xr-x 3 yuichi staff 102 Jun 15 17:09 SDN
âŠçç¥âŠ
-rw-r--r--@ 1 yuichi staff 1176845 Aug 28 13:06 yuiito-slide.pdf
drwxr-xr-x 13 yuichi staff 442 Dec 9 2014 yukumo
ãã®åºåã¯åœç¶ç°å¢ã«ãã£ãŠå€ãã£ãŠããŸããã2è¡ç®ãtouchã³ãã³ãã®åºå(åºåããªãã®ã§ç©ºè¡)ãšãªãã3è¡ç®ä»¥éã'ls -l'ã®åºåã«ãªã£ãŠããŸãã
ã³ãã³ããæåããã倱æãããã¯ç¢ºèªãã¥ãããªã£ãŠããŸããŸããããåºåãå©çšããããã°ã©ã ã§ã¯ãã¡ãã®ã»ãã䜿ããããã§ãã
ããšãã°ãç¹å®ã®å®å ã«å¯Ÿãããpingã®å°éçãã®ååŸãè¡ãããã°ã©ã ãæžããŠã¿ãŸãããããŸãPythonãåŒã³åºãããšã«ãªãpingã®åºåãã©ã®ããã«ãªãããã³ã³ãœãŒã«ã§ç¢ºèªããŸãã
[root@localhost ~]# ping 192.168.141.169 -i 0.1 -c 5
PING 192.168.141.169 (192.168.141.169) 56(84) bytes of data.
64 bytes from 192.168.141.169: icmp_seq=1 ttl=64 time=0.568 ms
64 bytes from 192.168.141.169: icmp_seq=2 ttl=64 time=0.899 ms
64 bytes from 192.168.141.169: icmp_seq=3 ttl=64 time=0.471 ms
64 bytes from 192.168.141.169: icmp_seq=4 ttl=64 time=0.445 ms
64 bytes from 192.168.141.169: icmp_seq=5 ttl=64 time=0.443 ms
--- 192.168.141.169 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 403ms
rtt min/avg/max/mdev = 0.443/0.565/0.899/0.173 ms
ã³ãã³ãã®ãªãã·ã§ã³-iã¯pingã®ãã±ãããéãéé(ã€ã³ã¿ãŒãã«)ã§ã-cã¯éãåæ°ãæå®ãããªãã·ã§ã³ã§ããåºåãã¿ããšpingã®å°éçãååŸããããã«ã¯â5 packets transmitted, 5 received, 0% packet loss, time 403msâã®è¡ã®â0%âã«å¯Ÿå¿ããŠããç®æãååŸã§ããã°ããããšãããããŸãããããã¯ã以å解説ããæ£èŠè¡šçŸã䜿ãã°å®çŸã§ããŸãã
å®éã«æžããŠã¿ãŸããããå®å ã¯ã³ãã³ãã©ã€ã³åŒæ°ã§æå®ããããã«ããŸãã
import sys, commands, re
if(len(sys.argv) != 2):
exit()
dest_ip = sys.argv[1]
ping_command = 'ping ' + dest_ip + ' -i 0.1 -c 5'
result = commands.getoutput(ping_command)
regex = re.compile('\d+ packets transmitted, \d+ received, (\d+)% packet loss, time \d+ms')
for line in result.split('\n'):
m = regex.match(line)
if m:
packet_loss = int(m.group(1))
packet_receive = 100 - packet_loss
print(str(packet_receive) + '% packets received')
å°ã埩ç¿ãå ŒããŠè§£èª¬ããŸããsys.argvã¯ã³ãã³ãã©ã€ã³åŒæ°ãžã®ã¢ã¯ã»ã¹ã§ããããããåŒæ°ãšããŠäžããããpingã®å®å IPãååŸããŠããŸãããããŠã³ãã³ãæååãäœããcommands.getoutputã§ã³ãã³ãã®å®è¡ãšå®è¡çµæã®ååŸãããŠããŸããæ¬¡ã«pingã®packet lossçãååŸããããã®æ£èŠè¡šçŸãäœæããŠããŸããäœåºŠãããããããããšã«ãªãã®ã§ãé«éåã®ããã«ã³ã³ãã€ã«ããæ£èŠè¡šçŸãå©çšããŸãããã®æ¬¡ã«ãã³ãã³ãã®è¿ãå€ã§ããæååãsplit('\n')ãšããããšã§åºåããåè¡ãããšã®ãªã¹ãã«ãããããforã«ãŒãã§åããŠããŸããforã«ãŒãã®äžã§ã¯ãå ã»ã©ã®æ£èŠè¡šçŸã䜿ã£ãŠãã¹çãååŸããããããå°éçãç®åºããŠè¡šç€ºãè¡ã£ãŠããŸãã
å®è¡ãããšä»¥äžã®ããã«ãªããŸãã
[root@localhost ~]# python ping.py 192.168.141.169
100% packets received
ã³ãã³ããäœæãããæ£èŠè¡šçŸã䜿ã£ããããŠé¢åãªã®ã§ããããããããOSã®pingã³ãã³ãã䜿ããã«äœããšãããããã£ãšé¢åãªã¯ãã§ããå ·äœçã«ã¯Pythonã§ICMP echo packetãäœããçžæããã®ICMP echo replyãåãåããšããããšãäœåºŠãç¹°ãè¿ããæçµçã«å°éçãç®åºãããšããããã°ã©ã ã«ãªãã§ãããã
Pythonã§OSã®ã³ãã³ããå©çšãããšããããšã¯ãOSã®ã³ãã³ãã§å®çŸã§ããããšãå®è£ ããªããŠããããšããããšã§ããã€ã±ãŠããã©ã€ãã©ãªã䜿ããšã³ãŒãéãå€§å¹ ã«æžãããã®ãšåãã§ãã·ã§ã«ã®åãåããããšã§ã³ãŒãéãå€§å¹ ã«æžãããã³ãŒããåçŽåããããšãã§ããŸãããã²ç©æ¥µçã«æŽ»çšããŠã¿ãŠãã ããã
ã·ã§ã«ã¹ã¯ãªããã®å®çšäŸ
ããŠãå ã»ã©ã®pingã®äŸã¯ãå®ã¯ãããã玹ä»ããå®çšäŸãžã®äŒç·ã§ãããPythonãã·ã§ã«ã¹ã¯ãªãããšããŠå©çšããæ¹æ³ã¯ããŸããŸã§ãããããä»åã¯ç§ã®æ¬è·ã§ããCiscoã®TACãšã³ãžãã¢ãšããŠãæ©åšã®æ€èšŒäœæ¥ãè¡ãéã«å©çšããäºäŸã玹ä»ããŸãã å ·äœçã«ã¯ãCiscoã®ããŒã¿ã»ã³ã¿ãŒåãSwitchã§ãããNexusãããæ©åšæ éæã®ãã©ãã£ãã¯ææéãæå°åãããããã®ç¹æ®ãªæè¡VPCã䜿ã£ãŠãã©ãã£ãã¯ãããŒããã©ã³ã¹ããŠããç¶æ³ã§ããŸããŸãªãããŒãæµãããã¹ãŠã®ãããŒãåé¡ãªãå±ãã確èªããããã®ãã¹ãã§ã(æ®æ®µã¯ãIXIAããªã©ã®ãã©ãã£ãã¯æž¬å®åšãªã©ã䜿ã£ãŠãã¹ããããŠããŸã)ã
以äžããã¹ãã®æ§æãèšèŒããŸãã
å³ã®äžåŽã¯æ€èšŒæ©åšã§ãå·ŠåŽã®ãCisco Nexus 2000 (FEX)ãããå ¥ã£ãéä¿¡ãå³åŽã®FEXããåºãŠããããå³ããå·Šãžã®éä¿¡ããã¡ããšéã£ãŠãããã確èªããšããŸããå·Šå³ã®FEXã¯ããããVMWareã®ãESXiããšåŒã°ãããã€ããŒãã€ã¶ãŒãèŒã£ããCisco UCS Serverãã«æ¥ç¶ãããŠããŸãã
ESXiäžã®Linuxã®Virtual Machineã¯ããããå¥ã®vSwitchã«æ¥ç¶ããããããLinuxéã§ãäºãã«éä¿¡ããããã«äžæŠå€ã«åºãªããã°ãããªãããã«èšå®ãããŠããŸããã€ãŸããVM1ãVM2ã«pingãæã€ãšãäžæŠå·Šã®Nexus 2000ã«ãã±ãããå±ãããããããå³åŽãŸã§ãããã¯ãŒã¯ã®äžãéããæçµçã«å³åŽã®Nexus 2000ããVM2ã«ãã±ãããå±ããããŸããVM2ããVM1ãžã®éä¿¡ãåæ§ã§ãã
ãã®ç¶æ³ã§VM Linux1ã2ã®ã€ã³ã¿ãã§ãŒã¹ã«ãããã50åã®IPãäžããéä¿¡å 50Ãå®å 50ã®2500ãã¿ãŒã³ã®éä¿¡ãããŒãäœãããã¹ãŠãåé¡ãªãLinux1ã2ã®éã§å°éããããšãããã¹ãã宿œããŸãã
OSã®ã¬ãã«ã§èŠããšã以äžã®ãããªéä¿¡ãã¹ãã ãšãããŸãã
ãªãããã®ãã¹ãã®èšå®ã¯æ®ã£ãŠããªãã®ã§ãä»åã¯åã«åäžvSwitchäžã«ååšããVMéã§10Ã10ã®100flowãé çªã«æµããŠããããã¹ãŠã®ãã±ãããå±ããã©ããããã¹ãããç°¡æçãšããŠããŸããæ€èšŒæã¯ãåŸã§èšèŒãããã«ãã¹ã¬ããã䜿ã£ãŠè€æ°ãããŒãåæã«æµããŠããŸããã
ããŠãå®éã«ã¹ã¯ãªããã®è©±ã«å ¥ããŸãããããŸãæåã«ããã¹ããè¡ãã«ãããã€ã³ã¿ãã§ãŒã¹ã«è€æ°ã®IPãäžããå¿ èŠããããŸããã¹ã¯ãªããã¯ä»¥äžãšãªããŸãã
import os
INTF_PREFIX = 'eno16777736'
NET_IP = '192.168.141.'
HOST_IP_FROM = 10
HOST_IP_TO = 19
for index, hostip in enumerate(range(HOST_IP_FROM, HOST_IP_TO + 1)):
intf = INTF_PREFIX + ':' + str(index + 1)
ip = NET_IP + str(hostip)
ifconfig_command = 'ifconfig ' + intf + ' ' + ip + ' netmask 255.255.255.0'
print(str(os.system(ifconfig_command)) + ' ' + ifconfig_command)
åäžã€ã³ã¿ãã§ãŒã¹ã«è€æ°ã®IPãäžããã«ã¯âifconfig ã€ã³ã¿ãã§ãŒã¹å:X IP_ADDRESS netmask NET_MASKâãšããã³ãã³ããäžããã°ããã§ãããã®ããããã®ã³ãã³ããforæã䜿ã£ãŠé£çªã§äžããããã®ããã°ã©ã ãšãªã£ãŠããŸãã
ãªããforæã§enumerateãšãã颿°ã䜿ã£ãŠããŸãããããã¯ä»¥äžã®ãããªåãããã颿°ã§ãã
>>> for i,j in enumerate(['a', 'b', 'c', 'd']):
... print(str(i) + ' ' + j)
...
0 a
1 b
2 c
3 d
èŠãŠããããšããããŸããã['a', 'b', 'c', 'd']ãšãããªã¹ãã®ã«ãŒããåãéã«ãããäœé±ç®ã§ããããšããæ å ±ãååŸããŠããŸããâfor i,jâã®iã«äœé±ç®ããjã«ãªãªãžãã«ã®ãªã¹ãã®å€ãå ¥ã£ãŠããŸãããããŠæåŸã«os.systemã§ã³ãã³ããå®è¡ãããã®è¿ãå€(æå or 倱æ)ãšãã³ãã³ããprintæã§è¡šç€ºããŠããŸãã
ãããå®è¡ããŠã¿ãŸãã
[root@localhost ~]# python setip.py
0 ifconfig eno16777736:1 192.168.141.10 netmask 255.255.255.0
0 ifconfig eno16777736:2 192.168.141.11 netmask 255.255.255.0
...
0 ifconfig eno16777736:9 192.168.141.18 netmask 255.255.255.0
0 ifconfig eno16777736:10 192.168.141.19 netmask 255.255.255.0
os.systemã³ãã³ãã®è¿ãå€ã0ãªã®ã§ãã³ãã³ãã®å®è¡ã¯æåããŠããŸãããã£ãããªã®ã§ããã¡ããšipãèšå®ãããŠãããã©ãã確èªããŠã¿ãŸãã
[root@localhost ~]# ifconfig | grep 'eno16777736\|192.168.141.'
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.161 netmask 255.255.255.0 broadcast 192.168.141.255
eno16777736:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.10 netmask 255.255.255.0 broadcast 192.168.141.255
eno16777736:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.11 netmask 255.255.255.0 broadcast 192.168.141.255
...
eno16777736:9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.18 netmask 255.255.255.0 broadcast 192.168.141.255
eno16777736:10: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.19 netmask 255.255.255.0 broadcast 192.168.141.255
åé¡ãªãã§ãããããã§ãeno16777736ããšããã€ã³ã¿ãã§ãŒã¹ã«ããªãªãžãã«ã®IPãš10åã®ä»åèšå®ããIPããµãããŠããããšãããããŸãããåæ§ã®ããšãIPãéè€ããªãããã«å察åŽã®Linux 2ã§ã宿œããŸãã
IPãèšå®ã§ããã®ã§ã次ã«Linux1ããLinux2ãžpingããããã°ã©ã ãæžããŸããLinux1ã®ãã¹ãŠã®IPããLinux2ã®ãã¹ãŠã®IPã«å¯ŸããŠpingããŸãã
import re, commands
INTERVAL = '0.1'
COUNT = '10'
NET_IP = '192.168.141.'
SRC_HOST_IP_FROM = 10
SRC_HOST_IP_TO = 19
DEST_HOST_IP_FROM = 20
DEST_HOST_IP_TO = 29
def ping(dest_ip, src_ip):
ping_command = 'ping ' + dest_ip + ' -I ' + src_ip + ' -i ' + INTERVAL + ' -c ' + COUNT
result = commands.getoutput(ping_command)
regex = re.compile('\d+ packets transmitted, \d+ received, (\d+)% packet loss, time \d+ms')
for line in result.split('\n'):
m = regex.match(line)
if m:
packet_loss = int(m.group(1))
packet_receive = 100 - packet_loss
print(str(packet_receive) + '% ' + src_ip + ' -> ' + dest_ip)
for src_host_ip in range(SRC_HOST_IP_FROM, SRC_HOST_IP_TO + 1):
src_ip = NET_IP + str(src_host_ip)
for dest_host_ip in range(DEST_HOST_IP_FROM, DEST_HOST_IP_TO + 1):
dest_ip = NET_IP + str(dest_host_ip)
ping(dest_ip, src_ip)
éäžã«ããping颿°ã¯å ã»ã©ã®pingã®äŸãšã»ãšãã©åãã§ãããéä¿¡å ãšéä¿¡å ã瀺ãããã«printæãè¥å¹²å€æŽãããŠããŸãããã®ping颿°ãéä¿¡å IPãšå®å IPã®2éã«ãŒãã§åŒã³åºãããšã«ãããéä¿¡å 10ãã¿ãŒã³ãå®å 10ãã¿ãŒã³ã®èš100ãã¿ãŒã³ã®ping ã宿œããŠããŸãã
å®è¡ãããšä»¥äžã®ããã«ãªããŸãã
[root@localhost ~]# python ping.py
100% 192.168.141.10 -> 192.168.141.20
100% 192.168.141.10 -> 192.168.141.21
100% 192.168.141.10 -> 192.168.141.22
100% 192.168.141.10 -> 192.168.141.23
100% 192.168.141.10 -> 192.168.141.24
100% 192.168.141.10 -> 192.168.141.25
100% 192.168.141.10 -> 192.168.141.26
100% 192.168.141.10 -> 192.168.141.27
100% 192.168.141.10 -> 192.168.141.28
100% 192.168.141.10 -> 192.168.141.29
100% 192.168.141.11 -> 192.168.141.20
100% 192.168.141.11 -> 192.168.141.21
âŠ
å®è¡ããŠã¿ããšããããŸããã1è¡ã®è¡šç€ºã«ã€ã1ç§ä»¥äžããã£ãŠããããã¹ãŠãçµãããŸã§ã«ãªããªãæéããããããã§ãã
OSãžã®ãªã¯ãšã¹ãã®é«éå
æåŸã«ã³ãã³ãåŒã³åºããããããã°ã©ã ã®é«éåã«ã€ããŠã話ããŸããã·ã§ã«ã䜿ã£ãããã°ã©ã ã¯ãPythonã ãã§å®æœãããããæ¯èŒçã«é ãããšãå€ãã§ããæ£ç¢ºã«ã¯ã·ã§ã«ãšããããããnetworkãdiskã¢ã¯ã»ã¹ã®é ããªã©ã«èµ·å ãããããPythonã ãã§ãèµ·ããããåé¡ã§ãããå®éã«ã¯ã·ã§ã«ã䜿ãå Žé¢ã§åºäŒãããšãå€ãã§ãã
ããšãã°å ã»ã©ã®pingã®ã³ãã³ããå®è¡ããéãã€ã³ã¿ãŒãã«0.1ç§ã§10çºæã€ã®ã§æäœ1ç§ããããŸãããªããªãã®é ãã§ããé床ã®é ãã®ããã«ããã¯ãCPUãã¡ã¢ãªã«ãªãã®ã§ããã°ãOSã®ã³ãã³ãã®åŒã³åºããå€éåããããšã§ã³ãã³ãã®åèšå®è¡æéãçãããããšãå¯èœãããããŸãããå ã®pingã®äŸã¯1ã³ãã³ãã«ã€ã1ç§ããããã®ã®ã5ã³ãã³ãã䞊åã«å®è¡ããŠãå®è¡æéã¯1ç§ã®ãŸãŸã§ãããããã1ã³ãã³ããããã¯0.2ç§ã«ççž®ãããŠãããšèããããšãã§ããŸãã
以äžã«ãã®äžŠåå®è¡ã«ããå®è¡æéççž®ã®æŠå¿µã®å³ãèšããŸãã
äžå³ã®äžåŽã¯ä»ãŸã§ã®äŸã®ããã«ããPythonããShellã®åŒã³åºããããããšãçµæãåãåããŸã§åŸ ã€ããšããéã®åãã§ããä»ãŸã§ã®ãµã³ãã«ã¯ãã¹ãŠãã®ãã¿ãŒã³ã§ãã
äžæ¹ãäžåŽã¯ãè€æ°ã®åœä»€ãåæã«çºè¡ãããŠããŸããããã¯ã䞊åå®è¡ããšåŒã°ããŠãããããã«ãã¹ã¬ããããšãã£ãæè¡ã䜿ãããšã§å®çŸã§ããŸãããã«ãã¹ã¬ãããçŸæç¹ã§åŠã¶ã®ã¯æ©ãããã®ã§ãæ¬é£èŒã®æåŸãããã§æ¹ããŠåãæ±ããŸãã
æŒç¿1
ã·ã§ã«ã®'ls -l'ã³ãã³ãã䜿ã£ãŠãããã°ã©ã ãå®è¡ããããã£ã¬ã¯ããªãã®é äžã«ãããã£ã¬ã¯ããªåã®ã¿æœåºããŠãã ãããããšãã°'ls -l'ãå®è¡ãããšä»¥äžã®ãããªåºåã«ãªããŸãããã®åè¡ã®æåã«ããâdrwxrwxrwxâã¯ãã¡ã€ã«ã®ããŒããã·ã§ã³ãªã©ã®æ å ±ã瀺ããŠããŸããããã®æåã®æåãdã ãšãã£ã¬ã¯ããªã§ãã
[root@localhost ~]# ls -l
total 3372
-rw-------. 1 root root 1475 Dec 22 2014 anaconda-ks.cfg
drwxrwxrwx. 18 500 500 4096 Dec 23 2014 click-2.0.1
-rw-r--r--. 1 root root 3423136 Sep 25 2011 click-2.0.1.tar.gz
-rw-r--r--. 1 root root 919 Sep 2 12:58 ping.py
-rw-r--r--. 1 root root 393 Sep 2 09:38 setip.py
-rw-r--r--. 1 root root 477 Sep 1 17:42 test.py
drwxr-xr-x. 2 root root 4096 Sep 2 13:12 testdir1
drwxr-xr-x. 2 root root 4096 Sep 2 13:12 testdir2
-rw-r--r--. 1 root root 0 Sep 2 13:12 testfile1
-rw-r--r--. 1 root root 0 Sep 2 13:12 testfile2
dããã£ã¬ã¯ããªãªã®ã§ããã®éå±€ã§ããã°ã©ã ãå®è¡ããå Žåã®åºåã¯ã
click-2.0.1
testdir1
testdir2
ãšãªããŸãã
æŒç¿2
åŒæ°ã§äžãããããã¡ã€ã³ã«å¯ŸããŠpingãè¡ããRTT(Round Trip Time)ã®å¹³åå€ãããªç§ã§è¡šç€ºããããã°ã©ã ãäœæããŠãã ãããããšãã°ä»¥äžã®ãããªåºåãšãªããŸãã
test.py cisco.com
average RTT is 185.846 ms
â»è§£çã¯ãã¡ããã芧ãã ããã
é£èŒå 容ã«äžåºåãã€ããã®ã§ã次åã¯ä»ãŸã§ã®æŒç¿ã®è§£èª¬ãšè§£çãè¡ããŸããä»åŸã®è©±é¡ã¯ãªããžã§ã¯ãæåãäžå¿ãšãªããŸãã
å·çè
玹ä»äŒè€è£äž(ITO Yuichi)ã·ã¹ã³ã·ã¹ãã ãºã§ã®æ¥åãšå€§åŠã§ã®ç 究掻åã§ã³ã³ãã¥ãŒã¿ãããã¯ãŒã¯ã«6幎é¢ãããå°éã¯L2/L3 Switching ãšããŒã¿ã»ã³ã¿ãŒé¢é£æè¡ããã³SDNãTACãšããŠã·ã¹ã³é¡§å®¢ã®ãã¯ãã«ã«ãµããŒãæ¥åã«åŸäºã瀟å åãã®ãœãããŠã§ã¢é¢é£ã®ãã¬ãŒãã³ã°ããã³ããŒã¿ã»ã³ã¿ãšSDNé¢ä¿ã®å€éšè¬æŒãªã©ãè¡ãã ããšããšä»®æ³ãããã¯ãŒã¯é¢é£æè¡ã®ç ç©¶éçºã«åŸäºããŠããããšãããããããã¯ãŒã¯ã ãã§ãªãããã°ã©ãã³ã°ãLinuxé¢é£æè¡ã«ã粟éãCisco瀟å å€åãã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããŒã«ã®éçºããè¶£å³ã§é³å£°åæåŠçã®ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãéçºã Cisco CCIE R&S, Red Hat Certified Engineer, Oracle Java Gold,2009幎床 IPA æªèžãããžã§ã¯ãæ¡æ 詳现(è±èª)ã¯ãã¡ã |
|---|




