1. 사용 명령어 |
(1) tar
(2) date
2. 키워드 & 사용처 |
(1) 키워드
tar, 아카이브, 추가, 어펜드
(2) 사용처
월별 아카이브에 목차 파일을 추가하는 등 기존 tar 아카이브에 파일을 추가하고 싶을 때 사용합니다.
3. 실행 예제 |
$ tar tf 202103.tar 기존 파일 확인
log/
log/20210301.log
log/20210302.log
log/20210303.log
$ ./tar-add.sh 실행
log/20210304
$ tar tf 202103.tar 추가된 내용 확인
log/
log/20210301.log
log/20210302.log
log/20210303.log
log/20210304.log
4. 스크립트 |
#!/bin/sh
# 년월로 아카이브 파일 지정(예 : 202103.tar)
archivefile="$(date +'%Y%m').tar ①
# 오늘 날짜로 로그 파일 지정(예 : 20210304.log)
logfile="$(date +'%Y%m%d').log
# 월별 아카이브에 오늘 로그 추가
tar rvf $archivefile log/$logfile ②
5. 해설 |
이 스크립트는 월별로 만든 tar 아카이브 파일에 매일 만들어지는 날짜명 로그 파일을 추가합니다. 오늘이 2021년 3월 4일 이라고 가정하면 202103.tar 이라는 아카이브 파일에 20210304.log라는 로그 파일을 추가하는 경우가 됩니다. tar 명령어는 c 옵션과 f 옵션을 사용해서 신규 아카이브를 작성하거나 이미 있는 tar 아카이브 파일 끝에 파일을 추가할 수도 있습니다. 그런 사용 예가 ②에서 지정하는 r 옵션(append 옵션)입니다.
실제 예제에서는 우선 tar 명령어의 tf 옵션으로 아카이브 내용을 확인합니다. 결과를 보면 알 수 있듯이 이 예제에서는 우선 202103.tar에는 다음 3개의 파일이 아카이브 되어 있습니다.
- 20210301.log
- 20210302.log
- 20210303.log
예제 스크립트를 실행하면 ① 처럼 우선 date 명령어를 이용해서 현재 날짜를 기준으로 월별 아카이브 파일과 로그 파일의 파일명을 조합니다.
파일명을 조합했으면 ②에서 tar 명령어로 아카이브 파일에 오늘 날짜 로그 파일을 추가합니다. r 옵션을 이용하므로 어제 날짜까지 파일은 그대로 두고 오늘 파일을 추가할 수 있습니다. 이렇게 월별마다 tar 아카이브를 자동으로 작성할 수 있습니다.
<주의사항> r 옵션을 쓸 때 지정한 tar 아카이브 파일이 존재하지 않으면 새롭게 tar 아카이브 파일을 작성합니다. 에러가 발생하지 않으므로 주의하기 바랍니다.
참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전
'IT 이야기 > Linux 셸 스크립트' 카테고리의 다른 글
[Linux 셸 스크립트] 파일처리 - 041 HTML 파일인 .htm과 .html 확장자를 txt로 일괄 변경하기 (0) | 2021.03.24 |
---|---|
[Linux 셸 스크립트] 파일처리 - 040 파일 퍼미션과 타임 스탬프 등 원래 파일 속성을 유지한 채 파일 복사하기 (0) | 2021.03.24 |
[Linux 셸 스크립트] 파일처리 - 038 tar 아카이브할 때 일부 파일이나 디렉터리 제외하기 (0) | 2021.03.24 |
[Linux 셸 스크립트] 파일처리 - 037 gzip 명령어로 압축률 높이기 (0) | 2021.03.24 |
[Linux 셸 스크립트] 파일처리 - 036 중요한 파일을 암호 걸어서 zip으로 아카이브하기 (0) | 2021.03.24 |
댓글