3월 17일 (파이썬 파일입출력, EVE환경 구성)
금일 키워드 : for 반복문, continue, while(break), 파일 입출력 (r,w,x,a,+), eve 환경 구성
구구단 세로버전
파이썬 (3월 16일 연장)
1. for 반복문
1-1. 반복문 활용
-> 요소 값을 아이템 변수로 할당해 응용이 가능하다
-> continue를 활용해 한 차례 반복을 건너뛸 수 있다
-> continue 아래의 코드를 무시하고 바로 for문으로 넘어간다.
연습문제
1. 위 (그림1-1)에서 조건문을 만족하는 count값과 만족하지 않는 count값을 따로 출력하세요
2. while 반복문
2-1. while 반복문 : 프로그램의 실행을 반복할 수 있음. *무한루프에 빠지지 않도록 주의
2-2. while 반복문 활용
3. 리스트 내포
3-1. 리스트를 만드는 반복문을 짧고 간결하게 만들어준다
-> print([ i for i in range(5)]) -> [0,1,2,3,4]
-> 조건문을 함께 사용할 수 있음 -> print([i for i in range(5) if i%2 ==0]) -> [0,2,4]
-> 다만 반복문을 여러 개 사용하는 중첩문일 경우 가독성이 떨어져 오히려 불편할 수 있다.
4. 파일 입출력
4-1. 순서 : open -> 읽기, 쓰기, 수정하기 -> close()
* close()를 통해 닫아주어야만 자원 점유를 해제하고 불필요한 오류 발생을 막는다
4-2. 파일 처리 모드 종류
-> r, w, x, a, + 로 이루어져 있으며 아래 설명 참고
4-3. 파일 쓰기
-> os라는 모듈을 활용해 현재 디렉토리 경로 확인 가능
-> 디렉토리 경로 없이 파일명만 적을 경우 지금 파이썬이 실행되는 경로에 파일 생성
*리눅스 터미널에서 특정 파일을 찾고자 하는 명령어 -> find / -name (파일이름.확장자)
ex) 바로 위에서 생성한 a.txt를 예로 하면 find / -name a.txt
-> 특정 경로에 파일을 생성하고자 한다면 아래와 같이 실행
-> 값을 바꾸고자 한다면 덮어쓰면 된다. (a.txt의 1234를 5678로 변경)
-> "a"를 이용하면 내용 뒤에 '추가' 가능
-> "x"를 이용하면 "w"와 기능은 똑같지만, 이미 파일이 있다면 덮어쓰기가 안 되고 오류난다.
-> 여러 줄 적고자 한다면 """ """ 또는 \n을 이용한다.
-> 리스트, 튜플에 있는 내용을 입력하는 방법 (writelines()함수 사용)
-> 리스트, 튜플 안의 값이 str이여야 하고, 두 내용을 붙일때는 줄바꿈이 기본이 아니기 때문에 원할 경우 \n을 해준다.
-> 파일 값을 읽어오려면 read함수를 사용하고, 한 줄씩만 출력하려면 readline() 함수 이용
-> readlines() 함수는 리스트값으로 출력
EVE 환경 만들기
password 설정 후 로그인 -> df -k 명령어 입력 시 현재 root 메모리가 8%인 것을 확인
~# : 홈 디렉토리(~)에 root권한(#) 인 것을 확인
이 상태에서 웹브라우저에 내 ip를 접속한다.
나의 경우는 http://192.168.200.129 로 접속한다.
admin - eve - native console 설정 후 접속
Add Folder 한 후 New Lab -> save 클릭
WinSCP를 추가 설치한다.
추가한 세션을 더블클릭 후 비밀번호 입력 시 아래와 같은 화면이 나타난다.
여기서 상위디렉토리로 간 다음 opt - unetlab - addons - iol - bin 경로에 다운받아놓은 IOL 폴더에 있는 L2, L3 파일을 복사한다.
이제 EVE-NG-Win-Cline-Pack-2.0 을 설치한다.
그 후 EVE-112에서 cd /opt/unetlab/addons/iol/bin 으로 이동한다. ls -l 명령 시 아까 복사했던 L2, L3 파일 두 개가 보임
현재 eve-112는 우분투 서버이기 때문에 gui지원을 하지 않는다. 때문에 gedit을 사용하지 못하고 아래의 명렁어를 사용한다.
vi iourc 입력 -> eve-iol-key파일의 [license]부터 그대로 입력 -> esc -> :wq 입력 후 엔터
아래와 같이 bin 경로에 파일이 저장된 것을 확인할 수 있다.
그 후 웹브라우저 eve에서 new node -> Cisco IOL 에서 L2, L3 를 각각추가시켜준다.
이제 Ubuntu eve랑 웹브라우저랑 연결을 한다.
여기서 스위치를 start하면 계속 유지해야되는데 곧 정지되는 현상이 나타날 경우, 웹브라우저 sign-out을 한 후 eve-112의 메모리를 8G로 늘린 후 로그인 -> 웹브라우저 다시 로그인
이래도 같은 현상이 반복된다면 라이센스 문제다.
홈 디렉토리에서 다음을 명령한다 -> /opt/unetlab/wrappers/unl_wrapper -a fixpermissions
이제 패킷트레이서처럼 스위치를 더블클릭 해보자
기기 간 연결은 기기스위치를 stop한 뒤에 연결을 해야한다.
라우터 인터페이스 ip할당 - no sh 후 내컴퓨터 cmd창에서 라우터 ip에 ping을 보내면 신호가 완료된다.
* 스위치 - no cdp run -> full duplex 메세지 삭제
* 라우터 - no service config -> tftp 서버 관련 에러 메세지. 적용 후 해당 라우터 다시시작
저장하는 방법
클릭 후 Startup-configs -> 모든 장치들을 on 시켜주면 다음과 같이 적용된 설정들을 확인할 수 있다.
리눅스 터미널에서도 설정시켰던 라우터ip주소들도 ping 확인한다.