단순백업
변경된 부분만 백업 (tar -N 옵션 사용)
#!/bin/bash
from_dir="/home/sysadmin/WWW" 백업할디렉토리
to_dir="/home/sysadmin" 백업받을디렉토리
today=`date +%Y%m%d` 백업파일명을 날짜로 사용
to_file=${today}.tar.gz
from_dir="/home/sysadmin/WWW" 백업할디렉토리
to_dir="/home/sysadmin" 백업받을디렉토리
today=`date +%Y%m%d` 백업파일명을 날짜로 사용
to_file=${today}.tar.gz
tar cvfz ${to_dir}${to_file} ${from_dir}
split -b 650m ${to_dir}${to_file} ${to_dir}${today} 파일을 650메가씩 분할
rm -f ${to_dir}${to_file}
split -b 650m ${to_dir}${to_file} ${to_dir}${today} 파일을 650메가씩 분할
rm -f ${to_dir}${to_file}
변경된 부분만 백업 (tar -N 옵션 사용)
(예) 2010년 01월 01일 이후 변경된 파일들만 백업
tar cvfz backup.tar.gz -N 20100101 /경로
tar cvfz backup.tar.gz -N 20100101 /경로
활용예
#!/bin/bash
from_dir="/home/sysadmin/WWW" 백업할디렉토리
to_dir="/home/sysadmin" 백업받을디렉토리
today=`date +%Y%m%d` 백업파일명을 날짜로 사용
to_file=${today}.tar.gz
from_dir="/home/sysadmin/WWW" 백업할디렉토리
to_dir="/home/sysadmin" 백업받을디렉토리
today=`date +%Y%m%d` 백업파일명을 날짜로 사용
to_file=${today}.tar.gz
tar cvfz ${to_dir}${to_file} -N `cat ./last_date` ${from_dir} 이전 작업시 저장된백업날짜를 호출
split -b 650m ${to_dir}${to_file} ${to_dir}${today} 파일을 650메가씩 분할
rm -f ${to_dir}${to_file} 백업날짜를 저장
split -b 650m ${to_dir}${to_file} ${to_dir}${today} 파일을 650메가씩 분할
rm -f ${to_dir}${to_file} 백업날짜를 저장
사용별 백업
/etc/passwd 파일에서, 사용자(UID 500이상)의 계정명과 홈디렉토리 위치를 가져옴
cat /etc/passwd | sed -e 's/::/:imsy:/g' | sed -e 's/ //g' | sed -e 's/:/ /g' | awk '$3 >= 500 {print $1,$6}'
활용예
#!/bin/bash
to_dir="/home/sysadmin" 백업받을디렉토리
cat /etc/passwd | sed -e 's/::/:imsy:/g' | sed -e 's/ //g' | sed -e 's/:/ /g' | awk '$3 >= 500 {print $1,$6}' > "$tmpfile"
to_dir="/home/sysadmin" 백업받을디렉토리
cat /etc/passwd | sed -e 's/::/:imsy:/g' | sed -e 's/ //g' | sed -e 's/:/ /g' | awk '$3 >= 500 {print $1,$6}' > "$tmpfile"
today=`date +%Y%m%d` 백업파일명을 날짜로 사용
to_file=${today}.tar.gz
from_dir=`awk '{print $2}' "$tmpfile"` 백업할디렉토리
for i in `echo "$from_dir"`
do
account=`grep "$i" "$tmpfile" | awk '{print $1}'`
tar cfz ${to_dir}${account}${to_file} ${i} 2>/dev/null
split -b 650m ${to_dir}${account}${to_file} ${to_dir}${account}${today} 파일을 650메가씩 분할
to_file=${today}.tar.gz
from_dir=`awk '{print $2}' "$tmpfile"` 백업할디렉토리
for i in `echo "$from_dir"`
do
account=`grep "$i" "$tmpfile" | awk '{print $1}'`
tar cfz ${to_dir}${account}${to_file} ${i} 2>/dev/null
split -b 650m ${to_dir}${account}${to_file} ${to_dir}${account}${today} 파일을 650메가씩 분할
rm -f ${to_dir}${account}${to_file}
done
rm -f "$tmpfile"
done
rm -f "$tmpfile"








12,674
17
58









