Development(Web, Server, Cloud)/22) LINUX - Cloud

Cloud16 + if 조건문, 복합테스트, 네트워크?

tonyhan18 2022. 1. 20. 17:42
728x90

if 조건문

```

if [ 조건문 ]

then

elif

else

fi

```

 

조건은 아래의 내용을 비교하여 분기한다.

- 숫자비교

- 문자비교

!= : 부정의 의미

< ,> , -n str(str의 길이가 0보다 크다면 참

-z str(str의 길이가 0인지 검사, 데이터가 없다면 참)

-> 예를 들어 사용자에게 입력을 받을 수 있는 프롬프트를 띄우고 사용자 입력이 있는지 없는지 검사용으로 사용

-> space, tab도 감지해냄

 

참고로 대충 위와같이 환경변수를 사용할 수도 있음

 

 

파일비교

[ -d file1 ] -> file1 이 있고 해당 file1은 디렉토리면 참

-e -> 해당 파일/디렉토리가 존재한다면 참

-f -> 해당 파일이 있다면 참

-r -> 파일이 있고 읽기 가능하다면 참

-w -> ...              쓰기 ...

-x ->  ...              실행 ...

 

 

사용자로부터 검색하고 싶은 dir 입력받기

입력받은 쉘은 해당 디렉토리에 존재하는 모든 파일을 검색하여 최근 3일 이내에 변경된적이 있는 파일을 확인하고 해당 파일의 리스트를 출력해 준다.

 

반달가면 : [bash: find] 최근에 접근/변경된 파일 찾기 (egloos.com)

 

[bash: find] 최근에 접근/변경된 파일 찾기

특정 디렉토리 하위에서 최근에 내용이 변경되거나(modified) 접근되거나(accessed) 상태가 변경된(changed) 파일을 찾아내는 방법이다. find 명령을 이용하면 간편하게 찾을 수 있다. 만약 find 명령에 익

bahndal.egloos.com

 

복합테스트 검토하기

두가지 이상의 조건을 부여하고 두 조건에 대한 불연산을 통해 분기되도록 할 수 있다...

- &&

위와같이만 사용가능하다. 두 조건문을 하나의 중괄호 안에 넣으면 안된다

 

Quiz : 사용자로부터 사용자명 입력

만약 사용자가 이미 존재하면 이미 존재한다고 말하기

사용자가 없다면 새 사용자를 새로 생성

단, 삭제한 사용자의 디렉토리가 남아 있으면 "사용자 생성 실패" 띄워주기

 

- ||

 

- 이중 괄호 사용하기

대충 후위, 전위 증가/감소 시킬때 사용하기

그냥 $[]의 대체품임

여기 안에다가 선언하고 연산하고 암튼 다해라

((a=10+3))

echo $a

해도 사용이 됨...

 

bc 왜쓰냐

 

 

- 이중 대괄호 사용하기

얘는 잘 안씀

 

구조적 명령 더 알아보기

for문으로 되풀이하기

```

for

do

done

```

 

대충 위와같이 만들어서 for문을 돌릴 수 있음 개꿀임

until 문으로 되풀이 하기

while 문 사용하기

루프 결합하기

루프 출력 리다이렉트하기

 

 

네트워크

시리얼 통신 : 회선 1개(bps)
패러렐 통신 : 회선 다수 8bit, 16bit, 32bit(Byte/s)

 

두 네트워크간에는 약속이 반드시 필요하다.

프로토콜

 

OSI 7계층 <-> TCP/IP 4계층

프로토콜 표준화 작업이 늦어짐

특정 프로토콜을 넣지 않음

 

미국 인터넷 표준으로 TCP/IP을 사용중이며

장비이름을 부를때 계층별로 이름을 부름 부를때 OSI 7계층 사용함

 

IETF : 국제 인터넷 표준화 기구(L3 이상)

-> RFC 표준문서

 

IEEE(전기전자 - L1, L2 주력) : 

 

 

1계층은 전달만

2계층은 충돌컨트롤

 

3계층 브로드캐스트, 충돌컨트롤, 다른 브로드캐스트 찾아가기(router)

 

브로드캐스트는 정말 멈추지 않고 들어온다. 이정표역활이라고 생각하면 쉽다.

 

4계층은 응용프로그램들에게 메세지를 보낸다.

 

---

 

각 계층별로 쓰는 말

 

MTU Size = Default 1500 => 1518 - (Ethernet Frame의 Header(14Byte) + FCS(4Byte))

최소값 : 64byte (이중 데이터 부분은 무조건 46 Byte로 생성해야함)

40Byte만 보낸다면 부족한 6Byte는 padding으로 채워야함

 

---

 

프로토콜 : 통신에 참여하는 의사소통 부분간의 규약

프로토콜 계층 : 네트워크는 일련의 네트워크로 구성됨(그래서 이전 단계가 없으면 윗단계는 아무것도 못함), 트리구조임

프로토콜 스택 : 특정 서비스를 제공하기 위한 프로토콜의 계층별 집합

ex) FTP 서비스 : FTP/TCP/IP/Ethernet

프로토콜 데이터 유닛(PDU)

 

프로토콜은 구문, 의미, 타이밍 = 모두 Header에 존재

프로토콜은 stack이라서 한 개의 서비스는 프로토콜의 조합으로 이루어짐

각 계층에서 Header가 붙음 또는 Header를 항상 제거

각 계층에서는 Header을 붙여 하위 계층으로(encapsulation)

하위 계층에서 상위 계층으로(decapsulation)

 

http://www.naver.com 로 패킷을 보낸다면 실재로는 어떤 파일을 원하는지 적어주어야한다.

암튼 HTTP 패킷은 대충 위와같이 생기었다.

 

실재로 보내는거보면 위와같다.

 

네트워크 별 장치는 위와같다.

 

L4 Load balancer같은것을 많이 한다.

 

각 계층은 하위계층 역활도 할 수 있다. 구지 윗계층 장비로 하위계층 처리를 안하는 이유는 비싸니까

 

Network Simulation 도구

GNS3 Local 설치로 가동이 가능하다

Linux 서버를 구축해서 Linux 서버를 통해서 구동이 가능하다 => 가상머신에 설치할 수 있다.

 

가상머신에 설치를 하면 시스템 자원 제한

 

GNS3를 설치하기 전 wireshark 꼭 설치를 해주시기 바랍니다.

GNS3에서는 통신이 정확히 되는지 확인이 필요할 때 패킷 캡처를 할 수 있음. 이때 wireshark의 도움을 받음.

 

wireshark 설치 시 npcap의 버전이 1.5이상으로 되어 있음

GNS3 설치 시 npcap 설치하고 해당 버전이 0.9버전으로 낮은 버전이기에 먼저 wireshark를 먼저 설치해서 npcap의 버전이 안정적인 버전으로 설치가 되도록 해줘야 한다.

 

GNS3를 설치시에는 npcap 설치를 해제해주어야 함

 

Npcap과 Wireshark를 해제해주자

그냥 설치해주자

중간에 인텔뭐시기가 나올텐데 그것도 그냥 설치해주면된다.

 

그냥 마지막에 solarwinds Standards Tools만 설치하지 말자

GNS3와 가상 서버가 통신할 수 있게 해주는 것이다.

 

2

4096으로 바꾸면 VMware가 자동실행된다

 

.

IOU L3는 에러가 난다. 또 등록해주면 에러가 없어진다고 한다.

지우고 다시 등록하니 잘 올라간다

위와같이 SW{0}로 해두어서 보기 편하게 만들자

 

R1에서

conf t

int e0/1

ip add 1.1.1.1 255.255.255.0

do sh ip int brief

 

SW1에서

conf t

int e0/1

하면 에러생김

 

no switchport

ip add 1.1.1.2 255.0.0.0

이렇게하면 ip가 들어간다. 이건 switchport의 역활을 바꾸어 L3 역활을 하게끔 만들것이다.

728x90