★bash script 작성시 #!/bin/bash 쓰는 이유
- 쉘은 여러가지가 있다. sh,bash,csh, 등등 스크립트를 어떤 쉘로 작성하겠다고 설정.
★Webhard
- 인터넷의 속도가 빨라지면서 사용자들은 usb나 CD/DVD를 사용하는 것보다 인터넷에 파일을
저장하고 보관하는 기능을 원하게 되었고, 이러한 기능을 해주는 것은 웹하드 라 불른다
- 오픈소스 AjaXplorer(Pydio)를 사용해 사용자의 서버 또는 클라우드에서 실행되는 파일공유 및
동기화 소프트웨어를 통해 구성
- 사용자는 자신의 계정이 있고 인터넷이 연결된 곳이 라면 어느곳이든 웹 브라우저로 접속해 자신의
파일을 다운로드 하거나 업로드 할수 있다.
★쉘 스크립트(shell script)
- 텍스트로 작성된 프로그램으로 한줄씩 순차적으로 읽어 실행되도록 작성된 프로그램
yum -y install gcc //컴파일러 패키지 설치
vi ~/.vimrc
set number //행번호 출력
set tabstop=4 //탭의 공백 문자개수를 4개로 지정
set shiftwidth=4 //탭 이동시 사용할 공백문자를 지정하는 옵션
set smartindent //엔터를 입력하여 개행시 자동으로 들여쓰기 옵션
set cindent //c언어 코드 작성시 c문법에 맞게 들여쓰기 옵션
vi /etc/passwd
자동 set number가 작동 확인
★C언어 vs 쉘 스크립트
cd /
mkdir /shell_script
cd shell_script/
vi c-style-sourc.c //c언어 테스트 파일 생성
vi shell-style.sh //확장자는 상관이 없지만 관례적으로.sh사용
!/bin/bash
// shebang : 스크립트의 맨 처음에 배쉬를 사용하겠다는 의미, 스크립트를 실행시켜줄 프로그램의
경로를 커널에게 전달하는 역할
echo "Hello Linux"
gcc -o [컴파일 결과] [컴파일 대상]
gcc -o c-style-compile.c c-style-source.c //컴파일
ll
./c-style-compile.c
Hello Linux //결과 확인
chmod +x shell-style.sh
./shell-style.sh //실행권한x필요
sh ./shell-style.sh //실행권한x 없이 실행
c언어로 작성된 프로그램은 컴파일하여 기계어로 변환된 목적파일로 만들어 준뒤 링크과정을
거치고 실행권한x가 있어야만 실행이 가능하지만 쉘 스크립트로 작성된 프로그램은 실행권한만 주면된다
.sh 확장자를 가진 파일은 실행권한이 없고 컴파일시 허가거부 확인
- c언어로 작성된 프로그램은 vi cat같은 명령어로 내용을 확인 할 수없는 바이너리 구조 변형되지만 쉘 스크립트
는 파일의 변환과정이 없다.
- c언어로 작성된 프로그램은 기계어로 변환되었기 때문에 커널에 의해 실행되지만 쉘 스크립트(bash,sh,ksh,zsh,bsh)
는 쉘이 한줄씩 읽어서 실행
★쉘 스크립트 문법 확인
sh -n [파일명]
vi first_script.sh
chmod +x first_script.sh
sh first_script.sh
vi second_script.sh
-echo 명령어 이후에 " " 큰 따옴표 안에서 백쿼터(' ')를 사용하여 명령어 사용이 가능하다.
컴파일 확인
★Read 명령어
-파일이나 입력한 문자열을 읽을때 사용한다.
-사용자가 enter 키를 입력할때 까지 프로그램을 중지시킨다.
Read 명령어 옵션
read answer //한 라인을 읽고 읽은 내용을 answer변수의 값으로 할당
read first last //한 라인을 읽고, 공백 또는 newLine을 기준으로 첫번째 단어는 first변수의 값
으로 두번째 단어는 last변수의 값으로 할당
read //한 라인을 읽고,REPLY 변수(내장/예약되어있는 변수)의 값으로 할당
read -a array //array 이름으로 된 배열의 단어 목록을 읽는다.
read -e //대화형 쉘에 사용
read -p prompt //prompt출력하고 입력을 기다리고 입력 내용을 REPLY변수에 저장
read -r line //백 슬래쉬 포함하는 입력을 허용
vi question_script.sh
sh question_script.sh //컴파일
★case~esac문 사용
-여러가지 경우의 수가 있을경우 사용
vi case.sh
#[인자] == stop 과 같을때 아래 명시한 문장 실행
★자동으로 본딩해주는 스크립트
★과정
1. 네트워크 카드 추가
2. ifcfg-eth0, ifcfg-eth1, ifcfg-bond0 파일 생성
3. /etc/modprobe.d/bonding.conf 파일 생성
4. 본딩 적용
5. 네트워크 재시작
6. 설정 확인
7. 본딩 테스트
★구성
테스트용 디렉토리 및 파일준비
mkdir /bonding_script
yum -y install lrzsz
설치 후 공유 폴더 두개(MASTER, SLAVE)를 해당 디렉토리로 이동
vi bonding.sh
★VMware 터미널에서 실행
ifconfig 본딩확인
'Server > Linux' 카테고리의 다른 글
xshell/ IPTABLE (0) | 2017.05.29 |
---|---|
xshell/ WEB,APM,XE (0) | 2017.05.21 |
xshell/ PXE & KICKSTART (0) | 2017.05.15 |
xshell/ NFS (0) | 2017.05.14 |
xshell/ SAMBA (0) | 2017.05.14 |