반응형

IT 72

[Python] getopt (스크립트 매개변수 지정)

getopt 모듈 (스크립트의 매개변수 지정) 짠 스크립트를 명령어처럼 쓰는 경우가 많다. 이런 경우 내가 알고 내가 쓰면 상관없지만, 남이 이 스크립트를 쓰거나, 아니면 내가 다시 쓰는데 매개변수가 헷갈리는 경우 getopt 모듈을 찾게된 이유는 여기서 출발했다. 대부분의 스크립트로 된 명령어는 help 메세지를 표시한다. 또한 help 메세지와 같이 여러 옵션들이 존재하고 옵션마다 값을 지정해 준다. 예를들어 아래 ping 명령어 처럼 # ping -h Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline] [-p pattern] [-s packetsize] [-t ttl] [-I interface or address] [-M mtu ..

IT/Programing 2020.04.07

Tcpdump 특정 헤더 조건 모음

tcpdump에서 일반적으로 쓰는 옵션들은 그냥 검색해도 다 확인 가능하다. 자주 사용하진 않지만 필요할 때마다 찾아보게 되는 특정 헤더들이 있는데, syn, ack, fin, rst 등의 헤더들이 대표적이다. 이 글에서는 그런 조건식들이 대해서 쭉 나열하려고 한다. 개인적으로 쓰기위한 글이라 쓰게되면 추가할 예정 - tcp flag syn인 패킷 # tcpdump -ne tcp[13]=0x02 - tcp flag syn,ack인 패킷 # tcpdump -ne tcp[13]=0x12 - tcp flag ack인 패킷 # tcpdump -ne tcp[13]=0x10 - tcp flag reset인 패킷 # tcpdump -ne tcp[tcpflags] & (tcp-rst)!=0 - tcp flag fin인..

IT/Network 2020.04.07

[용어정리] Bandwidth, Throughput, Backplane, Fabric용량

처음 네트워크 공부를 하면서 특히 장비 스펙을 볼 때 많이 헷갈리는 부분이다. 1. 일단 장비 포트 속도! 현재는 잘 안쓰이는 10M 부터 100M, 1G 10G, 40G 등등 으로 불리는 이 수치는 포트의 속도 이다. 정확한 단위는 bps로 초당 전송 가능한 bit 수 1G 포트는 초당 1Gigabit를 보낼 수 있는 포트인 것 2. 다음은 대역폭(Bandwith) 여기서 부터 헷갈릴 수 있는데, 속도와 대역폭.. 대역폭도 단위는 bps 하지만 의미하는 바가 다른데 많은 글에서와 같은 비유를 하자면 대역폭은 차선이다 전송하는 속도를 수용할 수 있는 용량? 이라고 볼 수 있다. LAG(Link Aggregation)으로 1G 두 포트를 묶은 인터페이스가 있으면 이 인터페이스의 속도는 1Gbps, 대역폭은..

IT/Network 2020.04.03

[잡] 프로그래밍 기도문

한창 학부 학부생 시절에 보고 빵터졌던건데 다른 버전도 있다지만 이게 더 맘에 들어서 간직하고 있던 것 ㅋㅋㅋㅋ 내용은 아래와 같다 하드디스크에 계시는 우리 프로그램이시여 디버그를 거룩하게 하옵시고 컴파일에 임하옵시며 명령이 키보드에서 이루어진 것과 같이 모니터에서도 이루어지게 하옵소서. 일용할 데이터를 주시옵고 우리가 프로그램의 오류를 용서한 것과 같이 우리의 오타를 사하여 주옵시고 우리를 버그에 들게 하지 모업시며 다만 불시의 에러에서 구하옵소서 대개 속도와 파워와 안정성이 프로그램에게 영원히 있사옵니다. 엔터 엔텈ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 끝

IT/Programing 2020.03.30

[Cisco 스위치] 명령어 정리 (개인적으로 쓰는)

- 도메인 검색 끄기 (명령어 틀릴때마다 검색하고 앉아있는거 핵 답답) no ip domain lookup - stp show spanning-tree show spanning-tree vlan [num] show spanning-tree vlan [num] detail - 포트상태 show interface status - LAG (link aggregation) 설정 int port-channel 1 int range gi 1/0/5-6 // chnnel-group 1 mode on channel-group 1 mode active channel-proto lacp exit int port-channel 1 switchport mode access switchport access vlan 10 - L..

IT/Network 2020.03.29

nf_conntrack table full dropping packet 로그

부하테스트 중에 문제가 발생하여 장비들을 뒤지다가 서버 한대에서 아래와 같은 로그를 확인하였다. nf_conntrack라는 애 table이 꽉차서 패킷을 드랍한다니 # cat /var/log/message 또는 # demsg 일단 conntrack이란 iptables의 상태추적 모듈로 NAT 테이블이나 FTP 등과 관련이 있으며 커넥션들에 대해 기록하고 추적하기 위한 모듈 nf_conntrack이 활성화되어 있을 경우, 커넥션 상태에 대해 일정시간 동안 기억하게 되며 기억하는 한계는 table의 크기값으로 지정되어 있으며 기본값은 65536이다. table 한계치를 초과하면 이후 패킷들은 모두 드랍한다. 아래 명령어들로 관련 상태를 확인 할 수 있다. 모듈 확인 # lsmod | grep nf_connt..

IT/Linux 2019.12.27

텔넷 root계정 접속 허용

텔넷으로 root 계정 접속 허용하는 방법 기본적으로 리눅스에 텔넷으로 root 계정 로그인이 불가능하다. 접근을 허용하는 방법은 아래 두가지 이다. 1. /etc/securetty 파일에 사용자 추가 (pts/1, pts/2) 파일내에 pts/1, pts/2를추가해 준다. vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 vc/9 vc/10 vc/11 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 ttyS0 ttysclp0 sclp_line0 3270/tty1 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvsi0 hvsi1 hvsi2 xvc0 pts/1// 추가한 줄 ~ ~ ~ ~ ~ ~ "/etc..

IT/Linux 2019.08.09

리눅스에서 패스워드 저장에관해

리눅스 패스워드 저장 리눅스에서 계정 정보를 저장하는 파일은 /etc/passwd 파일 이다. 해당 파일에는 계정 이름, id, 홈디렉토리, 사용 쉘 등이 기록되어 있는데, 이 글에서는 계정 정보 중 비밀번호에 대해서 알아본다. 비밀번호 정보는 /etc/shadow 라는 파일에 따로 관리되고 있는데, 해당 파일은 관리자 권한 계정만 읽기 등을 할 수 있다. passwd 파일 처럼 :로 구분되어 있는데 밑줄친 부분이 비밀번호에 대한 정보이다. 리눅스에서 비밀번호는 해시함수에 비밀번호를 적용해서 나온 값을 기록하고 있는데, 보안상 같은 해시함수에 같은 비밀번호를 넣으면 같은 값이 나오기 때문에 좋지 않다. 그래서 계정별로 salt라는 임의의 값을 부여해서 비밀번호 뒤에 추가해서 해시함수를 적용시킨다. 그래서..

IT/Linux 2019.08.08

[구성도 그리는 툴] Gliffy

네트워크 구성도 그리는 툴 Gliffy 네트워크 쪽 일을 하다보면 구성도 그리는 일이 허다하다. 대부분 파워포인트로 작업을 하게되는데, 구성도에 들어갈 장비 이미지들 땜에 고생이 많을 수 있다. 이럴 때 사용하면 좋은 툴을 소개한다. Gliffy 는 크롬 확장프로그램으로 실행 가능하다. 원래는 아래처럼 순서도를 그리는 용도로 많이 쓰는 것으로 알고 있다. 하지만 왼쪽 탭에 보면 Network 라는 항목이 있는데 클릭하면 네트워크 구성도를 그리는 장비들을 볼 수 있다. Home Network, Business Network, Rack Network 등등 카테고리가 추가로 밑에 있고 각각의 아이콘들이 있다. 그 외에 선연결 등은 크게 이질감 없이 사용 가능하다. 아래는 간략하게 완성한 구성도 끝 - 참조 회..

IT/Network 2019.08.01

[Python] print format

print 형식 파이썬에서 print 문은 특별한 출력 양식을 지정해서 사용할 수 있음 print("%s %d" % ("hi",23)) print("{} {}".format("hi",23)) 문자열과 int타입으로 두 줄 모두 같은 결과를 만들어낸다. 첫 번째 줄에서는 문자열과 int 뿐 아니라 다른 타입들도 사용할 수 있다. 하지만 %형식의 타입지정자?!를 알고 있어야 하는데, 이 부분은 다른 언어들에서도 대부분 비슷하게 쓰고있는 부분으로 크게 어렵지 않다. 두 번째 줄에서는 기본적으로 타입을 지정하지 않고 쓸 수 있고, 타입을 지정하면서 여러 형식을 의도하여 출력할 수 있다. print("{1} {0} {1}".format("hi",23)) print("- {1} -{0:>20s}".format("h..

IT/Programing 2019.07.31
728x90
반응형