[Linux] 셸 스크립트 자동화
1. backup 경로 아래에 오늘 날짜를 이름으로 하는 디렉토리를 생성한다.
$ mkdir 20210720
2. 아래 두 개의 명령어를 셸 스크립트로 작성한다.
-
zip.sh :
/var/log/syslog
와/var/log/dmesg
파일을 log_20210720-1300.zip 형태로 압축한다.- 변수 date에는
date
를 YYMMDD 형태로 파싱해 저장한다. - 변수 time에는
date
를 hhmm 형태로 파싱해 저장한다. - 두 파일들을 압축한 .zip 파일을
zip
명령어를 통해 원하는 절대 경로와 파일명을 기입후 압축한다.
- 변수 date에는
-
copy.sh :
/var/log/syslog
파일을/var/log/syslog_1
로 복사한다.- 먼저 /var/log/syslog_1 파일의 존재 유무를 판단하고, 존재하면 해당 파일을 삭제한다.
/var/log/syslog
파일을/var/log/syslog_1
파일로 복사한다.
3. crontab을 문제 기준에 맞게 작성한다.
- 첫 번째 명령은 0분, 5분, 10분 등 5분 간격으로
zip.sh
을 실행한다. - 두 번째 명령은 매 시 29분마다
copy.sh
를 실행한다. - 세 번째 명령은 매 시 59분마다
copy.sh
를 실행한다. - 주의할 점은 sudo 권한으로 crontab을 실행시켜야 정상적으로 작동한다는 점이었다.
4 . 결과는 위와 같다. 5분 간격으로 두 파일을 압축한 .zip 파일이 보이고,
5 . 만들어진 .zip 파일들을 가져오기 위해 로컬에서 쉘 스크립트를 아래와 같이 작성한다.
-r
옵션을 주면, 가져오고자 하는 경로의 파일이 디렉토리로 설정되어, 해당 디렉토리 내부 모든 파일을 가져오게 된다.
댓글남기기