Cloud16 + if 조건문, 복합테스트, 네트워크?
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 역활을 하게끔 만들것이다.