unix 웹 백업 (쉘 스크립트)

2018.10.14 13:05

관리자 조회 수:1330

#!/bin/bash

### 변수 설정 ###
home=/var/www/ # 홈 경로
backup_path=/root/backup/ # 저장할 경로
delete_date="+6" # 6일이 지난 백업본 삭제
www=public_html # 웹 디렉토리 이름
vm_shared=/mnt/backup/ # VMware 공유폴더

### 예전 자료 삭제 ###
find $backup_path*.tar.gz -mtime $delete_date -print -exec rm -rf {} \;

### 서비스 종료 ###
wall "Web Backup Start"

### 압축 ###
mkdir $backup_path # 혹시 backup 폴더 삭제한 경우;;
for folder in $home*/$www
do
 filename=`date +%Y%m%d-%H%M`_${folder#$home} # 20120325_elkha/public_html
 tar cvfz $backup_path${filename%/$www}.tar.gz $folder # tar cvfz /manage/backup/20120325_elkha.tar.gz /home/elkha/public_html
done

wall "Web Backup End"

### 백업 파일 이동 ###
if [ -d $vm_shared ];then
 # 오늘 날짜의 파일들을 모두 이동
 mv $backup_path`date +%Y%m%d`* $vm_shared
 # db파일은 용량이 작으니 웹 파일만 삭제한다.
 find $vm_shared*.tar.gz -mtime $delete_date -print -exec rm -rf {} \;
fi