*네트워크 2급 접수 3/20 - 3/22
단체 검정 코드 : J019
*실리콘밸리의 해적들
쿼터(Quota) 개념
파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량 및 개수를 제한하는 것
파일시스템을 “/”로 지정하는 것보다는, 별도의 파일시스템을 지정해서 해당 부분을 쓰도록 하는 것이 좋음
“/”파일시스템을 많은 사용자가 동시에 사용하게 되면, CentOS서버를 운영하기 위해서 디스크를 읽고 쓰는 작업과 일반 사용자가 디스크를 읽고 쓰는 작업이 동시에 발생하므로 전반적으로 시스템의 성능이 저하됨
*쿼터 흐름도

◆ 디스크 쿼터 ⇒ 사용자 별 디스크 용량을 지정( 개인이 용량을 모두 사용하는것을 방지 )
- 생성한 디렉터리와 파일 디스크와 마운트 연결
*사용자 생성과 홈디렉토리를 testHome 로 지정 .
- -d 옵션: 사용자가 생성되는 디렉터리 지정, -s 옵션 : 사용자 셀 지정
- 패스 워드 설정
*fstab 수정

*재 마운트
- /etc/fstab 수정
- -o 옵션: 옵션 지정한다는 것(remount)
- remount 할 때는 디렉터리만 입력하면 된다, 재마운트 할 때는 마운트 후에 하기
-쿼터 DB생성
[root@sodesk ~]# cd /testHome
[root@sodesk testHome]# rm -rf aquota.* ⇒ 전체 점검 후 필요없는 파일 정리
[root@sodesk testHome]# touch aquota.user aquota.group ⇒ 기록될 DB파일 생성
옵션 : a(all)-모든파일, v(상태확인) , u(user), g(group) , m(마운트) , n( 순서-첫번째를 뜻함 )
- 순서 중요
- 쿼터와 관련된 것 꺼주기, 쿼터 체크, 쿼터 체크 후 이상한 파일 제거후 다시 체크
- 쿼터는 설정하고 체크해주는 것이 안정적, 하지만 안해도 상관없음
- 사용자와 관련된 파일 만들기(그룹도 생성 가능)
- 파일 권한 바꾸고, 체크(필수)하고 쿼터 켜주기
*사용자별 용량 지정

- 사용자별 용량 지정: edquota -u [사용자 명] (-u : user)
- soft는 기본 용량, hard는 최대 용량
*tom 사용자로 전환해서 파일 넣어 보기

- tom으로 사용자 변경
- boot 파일 복사해서 tom 디렉터리에 추가
- 복사해서 만들어도 계속 만들어지는데 용량은 0byte이다
*사용자가 본인 용량 확인
- 사용자한테 할당된 것 확인(용량 초과된 만큼 6일 후에 사라진다.)
*관리자가 사용자별 설정 확인

- 관리자가 사용자 별로 용량 확인할 때(ls -l은 폴더만 확인)
- 0은 무한대로 쓸 수 있다는 뜻
*두번째 사용자(lim) 용량 설정 : tom 사용자의 설정을 그대로 lim 사용자에게 적용시키기

- tom 사용자 설정을 다른 사용자에게 적용하기(사용자가 많을 때)
- -p 옵션 : 복사
CentOS의 bash 셸
• 셸의 명령문 처리 방법
환경 변수

변수의 기본

변수의 입력과 출력

숫자 계산

- 쉘은 /bin 폴더 아래에 저장된다.
- centos 사용자의 쉘 변경: chsh -s [쉘 종류][사용자]
- 다시 bash로 바꾸기
*환경변수
- 리눅스에서 변수를 입력하려면 환경변수로 등록해야 한다.
- export는 설정된 것 전부 보여주고, echo는 설정된 것 1개 확인 가능하다.
- echo 사용할 때 $ 뒤에는 대문자로 입력
*스크립트 작성 후 실행
- 설정된 것 변경하기: env , 대문자 주의
*변수 출력


- #!/bin bash : bash 쉘 지정
- 쉘 스크립트 파일 만들고 출력 명령어(echo) 입력
- sh 명령어를 이용해서 출력
- 쓰기 권한 부여 후에 ./name.sh 도 가능
- 출력 방식 확인(vi를 통해 쉘 스크립트 작성: vi [파일명].sh)
- 출력된 것 확인
- '(작은 따음표)는 출력되고 `(윗 따음표)는 출력이 안된다.
- 변수 지정방법
*연산

- 계산할 때 \표시는 구분 짓기 위해서
- `(윗 따음표) 입력해서 계산할 때 띄어 쓰기 중요, 변수 지정할 때는 한줄로 쭉 입력
- 연산할 때 expr 명령어 사용
- 계산한 값

====================================
#!/bin/bash
[root@sodesk test]# sh test3.sh hello tom yes
- 파라미터 이용하여 파일 작성($숫자)
- 출력 화면(파라미터 전체 갯수 3개)
*반복 ( if ) 조건에 맞으면 참(True), 거짓(False)
=====================================
#!/bin/bash
=====================================
#!/bin/bash
=====================================
if ~ else (참과 거짓을 출력)
#!/bin/bash
if [ "hello" = "hello" ] / "hello" != "hello" / "Hello" = "hello"
then
echo "True"
else
echo "거짓입니다."
fi
exit 0
⇒결과 : "hello" = "hello" ⇒ True / "hello" != "hello" ⇒ 거짓입니다. / "Hello" = "hello" ⇒ 거짓입니다.
=====================================
#!/bin/bash
if [ 100 -eq 100 ] -eq는 =와 같음. -ne는 !=와 같음. 숫자는 “” 가 필요 없음.
then
echo "True"
else
echo "100과 200은 다르다."
fi
exit 0
출력값은 -eq : True, -ne : 100과 200은 다르다
======================================
- if문 작성
- 대소문자 구분
- =을 -eq(equal)로도 표현, !=을 -ne로도 표현
- True 화면 출력
- if ~ else문 작성
- True 화면 출력
파일 위치: cat /lib/systemd/system/crond.service(cron)
, cat /lib/systemd/system/sshd.service(sshd)
*if문을 이용해서 파일을 읽어서 결과를 출력 ( cron에 예약이 되어있는지 여부, sshd서버가 설치 여부 )

• if 문은 참과 거짓의 두 경우만 사용 (2중 분기)
• 여러 가지 경우의 수가 있다면 case 문 (다중 분기)
case ~ esac 문 : 입력값이 설정값을 비교해서 같으면 해당 열 출력

- case ~ esac문 작성
- 출력 화면 : sh [파일명] start
for문을 이용한 반복

- for문 작성(test안에 과일명을 집어넣고 실행)
- for문 do는 done으로 맺음짓기
- 출력 값
- for문을 이용하여 1부터 10까지 합을 구하기
- 출력 화면

- read를 이용하여 입력
- 출력 값






*while 문을 이용해서 출력


*점수를 입력 받아서 90~100=A, 80~89=B, C, D, E, F
