리눅스/정보

Shell script

짱짱이_ 2023. 7. 23. 21:51

자주 입력해줘야 하는 명령이나 입력하기 복잡한 명령을 저장해놨다가 불러와서 실행시킬 때 이용한다.

shell에서 실행되는 명령들을 적어놨다가 불러오는 기능이다.

 

 

  •  log파일을 backup할 때

1. 임의로 log 파일 생성한다.

touch a.log b.log c.log

2. bak 디렉토리 생성을 한 후 log 파일을 옮긴다.

mkdir bak
cp *.log bak # log로 끝나는 모든 파일을 복사하고 bak에 저장한다

3. log 파일이 업데이트되어 다시 덮어쓰고 싶다면 (bak 디렉토리가 있는 경우)

cp *.log bak

 

 

  • Shell script 작성
nano backup
#!/bin/bash
### backup이라는 프로그램을 실행시킬 때 bin/bash를 이용해 해석된다는 의미
if ! [ -d bak ]; then
        mkdir bak
fi
cp *.log bak

if -d 디렉토리이며 존재하고 있는지 유무를 따질 때 이용한다.

if [ -d bak ]; 현재 디렉토리에 bak 디렉토리가 존재하는지 확인한다.

fi 조건문이 끝났음을 알려준다.

 

script를 ctrl+x, Y 입력을 통해 저장 후 ./backup 을 입력해 실행시킨다.

권한이 없다는 에러가 뜬다면 다음의 명령을 입력해 권한을 준다.

chmod +x backup

-rw .. 뒤에 -x가 추가된 것을 확인할 수 있다. 여기서 x는 excutable 실행 가능하다는 의미이다.

이후 ./backup 명령을 통해 실행시킬 수 있다.