쉘 스크립트에서의 유의사항
java나 php 등 다른 언어에서는 변수를 사용하기 위해서는 변수 타입을 선언하거나, $를 붙여 줘야 한다. 하지만 쉘 스크립트에서는
1. 변수를 선언할 때 변수명만 적어주면 된다. 단 이름에 숫자는 포함될 수 있지만 숫자로 시작될 수 없다.
ex) name="itseong"(0) , name1(0), 1name(x)
2. 변수는 대, 소문자를 구별한다.
3. 변수에는 모든 값이 문자열로 저장된다.
4. 값을 사용할 때는 변수명 앞에 특수문자'$'를 붙여 사용한다.
ex) $name, ${name} *{}의 차이는 문자열을 붙여서 쓸려면 {}이 필요하다.
5. 값을 대입할 때는 특수문자를 '$'를 사용하지 않는다.
ex) name=1234, name='itseong'
6. 등호를 사용할 때는 등호 앞뒤로 공백이 없어야 한다.
ex) num=14, name='itseong'
#!/bin/bash
DB_name="DatabaseName"
DB_BackUpDir="/home/User/db_backUpDir"
DB_BackUpDate="date + %Y%m%d%H%M%S" #ex 20220427195000
# DB BACKUP
mysqldump --login-path=dbbackup ${DB_name} | gzip > ${DB_BackUpDir}/${DB_name}-${DB_BackUpDate}.sql.gz
# 2차 백업(외부 서버)
scp "파일 위치" uesr@hostName & ip :"저장 경로"
# key를 입력하지 않은 이유는 ssh-copy-id로 경로를 등록하였다.
# 7일이 지난 파일 삭제
find ${DB_BackUpDir} -ctime +7 -exec rm -f {} \;
# 5분이 지난 파일을 지우고 싶을때는 cmin +5 을 사용하면 된다.
# 주의 경로에 아무것도 들어가지 않으면 전체 데이터를 삭제할 수 있다. 조심해야 한다.
#ssh-copy-id로 등록 ssh 접속후 명령어 실행
ssh user@hostName & ip "cmd1; cmd2"
오늘은 DB 백업 스크립트를 작성하면서 mysqldump에 대해 알아보려 한다.
파일 추출
# 전체 DB를 백업할 때 -h localhost일때는 생략
mysqldump -h 192.168.0.1 -u user -p password -A > 파일명.sql
# 특정 db를 백업할 때
mysqldump -h 192.168.0.1 -u user -p password DB명 > 파일명.sql
# 특정 db 테이블을 백업할 때
mysqldump -h 192.168.0.1 -u user -p password DB명 테이블명 > 파일명.sql
# 특정 db 테이블1, 테이블2, 테이블3 들을 백업할 때
mysqldump -h 192.168.0.1 -u user -p password DB명 테이블명1, 테이블명2, 테이블명3 > 파일명.sql
파일 삽입
# 전체 DB를 삽입할 때
mysqldump -h 192.168.0.1 -u user -p password -A < 파일명.sql
# 특정 db를 삽입할 때
mysqldump -h 192.168.0.1 -u user -p password DB명 < 파일명.sql
압축 파일로 추출 시
# 전체 DB를 백업할 때 -h localhost일때는 생략
1:mysqldump -u user -p password -A > 파일명.sql
2:mysqldump -u user -p password -A | gzip > 파일명.sql.gz
3:mysqldump -u user -p password -A | gzip -9 > 파일명.sql.gz
4:mysqldump -u user -p password -A | zip > 파일명.sql.zip
5:mysqldump -u user -p password -A | bzip2 > 파일명.sql.bz2
1번은 압축하지 않고 추출할 때
2번은 gzip으로 추출할 때
3번은 gzip의 최고 압축률로 추출할 때
4번은 zip으로 추출할 때
5번은 biz2로 추출할 때
아래는 외부의 결과를 참고하였다.
압축을 할 때 시간을 중요시하면 gzip이나 zip을 시간보단 최고의 압축률을 중요시할 때는 bzip2를 사용하면 좋다.
오늘은 MysqlDump에 대해 알아보았다.
'Cs' 카테고리의 다른 글
18.리눅스(Linux) 쉘 스크립트(Shell Script) - DB 백업 스크립트 - 파일 외부 복사/전송(rsync) - SCP대체 Rsync (0) | 2022.04.28 |
---|---|
17. 리눅스(Linux) 쉘 스크립트(Shell Script) - DB 백업 스크립트 - Mysql_config_editor (0) | 2022.04.28 |
15. 리눅스(Linux) 쉘의 종류와 쉘 스크립트(Shell Script)(1) (0) | 2022.04.26 |
14. javascript Closure(클로저) (0) | 2022.04.25 |
13. javascript 나머지 매개변수 (0) | 2022.04.21 |