★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

+ Recent posts