OnWorks Linux 및 Windows 온라인 워크스테이션

심벌 마크

워크스테이션용 무료 온라인 호스팅

<이전 | 내용 | 다음>

2.1. NFS 아카이브 순환


이 섹션에서는 할아버지-아버지-아들 순환 방식(월별-주별-일별)을 구현하기 위해 쉘 스크립트를 약간 수정합니다.

• 회전은 다음을 수행합니다. 매일 일요일부터 금요일까지 백업하세요.

• 토요일에 주간 백업이 완료되어 한 달에 XNUMX번의 주간 백업이 제공됩니다.

• 그만큼 백업은 해당 월이 홀수인지 짝수인지에 따라 두 번의 월간 백업을 번갈아 가며 매월 XNUMX일에 수행됩니다.


새로운 스크립트는 다음과 같습니다.


#! / bin / bash

############################

#

# 다음을 사용하여 NFS 마운트 스크립트로 백업

# 할아버지-아버지-아들 순환.

#

############################


# 백업할 내용.

backup_files="/home /var/spool/mail /etc /root /boot /opt"


# 백업할 위치. 대상 = "/mnt/백업"


# 아카이브 파일 이름에 대한 설정 변수. 일=$(날짜 +%A)

호스트 이름=$(호스트 이름 -s)


# 1~4월 중 어느 주인지 알아보세요. day_num=$(날짜 +%-d)

if (( $day_num <= 7 )); 그런 다음 week_file="$hostname-week1.tgz"

elif (( $day_num > 7 && $day_num <= 14 )); 그런 다음 week_file="$hostname-week2.tgz"

elif (( $day_num > 14 && $day_num <= 21 )); 그런 다음 week_file="$hostname-week3.tgz"

elif (( $day_num > 21 && $day_num < 32 )); 그런 다음 week_file="$hostname-week4.tgz"

fi



# 월이 홀수인지 짝수인지 알아보세요. 월_번호=$(날짜 +%m)

월=$(expr $month_num % 2) if [ $month -eq 0 ]; 그 다음에

Month_file="$hostname-month2.tgz"

그렇지 않으면


fi


Month_file="$hostname-month1.tgz"


# 아카이브 파일명을 생성합니다. if [ $day_num == 1 ]; 그런 다음 archive_file=$month_file

elif [ $day != "토요일" ]; 그런 다음 archive_file="$hostname-$day.tgz"

그렇지 않으면 archive_file=$week_file

fi


# 시작 상태 메시지를 인쇄합니다.

echo "$backup_files를 $dest/$archive_file에 백업 중" 날짜

에코


# tar를 사용하여 파일을 백업합니다.

tar czf $dest/$archive_file $backup_files


# 종료 상태 메시지를 인쇄합니다. 에코

echo "백업 완료" 날짜


# 파일 크기를 확인하기 위한 $dest의 긴 파일 목록. ls -lh $dest/


1.2절 “스크립트 실행하기” [p. 325].


재해가 발생할 경우 백업 미디어를 오프사이트로 가져가는 것이 좋습니다. 쉘 스크립트 예에서 백업 미디어는 NFS 공유를 제공하는 또 다른 서버입니다. 아마도 NFS 서버를 다른 위치로 가져가는 것은 실용적이지 않습니다. 연결 속도에 따라 WAN 링크를 통해 다른 위치에 있는 서버로 아카이브 파일을 복사하는 옵션이 될 수도 있습니다.


또 다른 옵션은 아카이브 파일을 외부 하드 드라이브에 복사한 다음 오프사이트로 가져가는 것입니다. 외장 하드 드라이브의 가격이 지속적으로 하락하고 있으므로 각 아카이브 수준에 두 개의 드라이브를 사용하는 것이 비용 효율적일 수 있습니다. 이렇게 하면 하나의 외부 드라이브를 백업 서버에 연결하고 다른 하나를 다른 위치에 연결할 수 있습니다.


OnWorks의 최고 OS 클라우드 컴퓨팅: