문제 내용은
문제 ·/var/log/messages 와 같은 백업 시스템을 만들고 싶다.
파일(File명)의 백업을 구하는 쉘스크립트를 작성해 주세요.
(단, 이하의 기능을 갖도록 작성한다.)
1. 백업 파일(File.1, File.2, File.3, File.4)이 있는지
조사,
■없다 ... File.1의 이름으로 작성한다.
■있다 ... File.1⇒ File.2, File.2⇒ File.3, File.3⇒ File.4이고,
백업을 한 뒤 새로 백업 파일(File.1)을 작성한다.
■새로운 백업을 작성한다.
… File.4를 삭제하고, File.3⇒ File.4,
File.2⇒ File.3, File.1⇒ File2로 백업을 하고
새로 백업 파일(File.1)을 작성한다.
```
#!/bin/bash
file='File'
if [[ -e ${file}.4 ]]; then mv ${file}.4 ${file}.5; fi
if [[ -e ${file}.3 ]]; then mv ${file}.3 ${file}.4; fi
if [[ -e ${file}.2 ]]; then mv ${file}.2 ${file}.3; fi
if [[ -e ${file}.1 ]]; then mv ${file}.1 ${file}.2; fi
if [[ -e ${file}.5 ]]; then mv ${file}.5 ${file}.1; fi
```
■있다 ... File.1⇒ File.2, File.2⇒ File.3, File.3⇒ File.4이고,
백업을 한 뒤 새로 백업 파일(File.1)을 작성한다.
현재 이부분만 한 상태입니다.
질문 내용인 위에부분인
1. 백업 파일(File.1, File.2, File.3, File.4)이 있는지
조사,
■없다 ... File.1의 이름으로 작성한다.
■새로운 백업을 작성한다.
… File.4를 삭제하고, File.3⇒ File.4,
File.2⇒ File.3, File.1⇒ File2로 백업을 하고
새로 백업 파일(File.1)을 작성한다.
이부분은 손도 못대고 있네요
이런 질문만 드려서 죄송할 따름입니다ㅠㅠ
sehongpark님의 답변
## 역질문
1. 백업 스크립트는 어떤 이벤트를 통해 동작하나요?
2. 가장 최근 4개의 버전까지만 관리하면 되는 걸까요?
3. 구현한 부분이 무엇이고, 미 구현부분이 무엇인가요?
## 제가 이해한 내용
```
if (백업파일이 있는가?) {
// 파일 버전 시프트
버전 1 -> 2, 2 -> 3, 3 -> 4
}
// 새로운 파일 생성
버전 1 := 새로운 파일
```
jes000182님의 답변
결국 완성했습니다 ㅠㅠ
```
#!/bin/bash
file='File'
echo -n "파일명을 입력해주세요 :"
read a
echo -n "$a 을File.1에 백업하시겠습니까?(Y/N):"
read b
if [[ $b == "y" ]] || [[ $b == "Y" ]] || [[ $b == "yes" ]] || [[ $b == "Yes" ]]; then
echo "백업을 완료했습니다"
if [[ -e ${file}.3 ]]; then mv ${file}.3 ${file}.4; fi
if [[ -e ${file}.2 ]]; then mv ${file}.2 ${file}.3; fi
if [[ -e ${file}.1 ]]; then mv ${file}.1 ${file}.2; fi
cp $a ${file}.1
if [[ -e ${file} ]]; then mv ${file} ${file}.1; fi
else
echo "백업을 실패했습니다"; fi
```
sehongpark님의 답변
멋져용~! 굳잡~~
jes000182님의 답변
감사합니다ㅠ
혹시 제가 저번에 부탁드린 포커 만드는 프로그래밍 해보셨나요??
어떻게 시작해야할지 감도 안잡혀서ㅠ
sehongpark님의 답변
아직 보지를 못했네요.
이번주 중으로 짬날 때 한 번 확인해볼게요.
기한이 언제까지인가요?
jes000182님의 답변
담주 금요일까지입니다
바쁘신 와중에 너무 죄송스럽네요ㅠ