미니옵빠의 code stubs
리눅스 - cron 이용한 로컬 백업 스크립트 본문
리눅스 서버 2대에 사용중이다.
일주일간의 주요 파일과 /home 밑의 각 파일을 백업하고 7일지난후에 자동으로 삭제해주는
초간단. 쉘 스크립트.
cron에 백업하고 싶은 시간대에 넣어주는 센스만 발휘하자.
#!/bin/bash
export Today="`date '+%y-%m-%d'`"
########### Old BackupData Delete ####
dirlists=`/bin/ls -t /backup/home 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -ge 7 ] ; then
/bin/rm -rf /backup/home/$dir
fi
i=$(($i+1))
done
################ New Today Mkdir ####
/bin/mkdir -p /backup/home/$Today
d /backup/home/data/$Today
################ HomeData backup ####
tar cvfpz /backup/home/$Today/way.tar.gz /home/way
################ System Backup ####
tar cvfpz /backup/home/$Today/system_backup.tar.gz
/usr/local/apache/conf/httpd.conf /usr/local/proftpd/etc/proftpd.conf
/etc/passwd / etc/mail/access
############# Make Link####
rm -f /backup/linkhome
ln -s /backup/home/$Today /backup/linkhome
이상 쉘스크립트이고
cron에 어떻게 등록하는지 모르는 사람을 위해 한자 더적어보면
(cron 에 관한 자세한건 참고도서나 superuser.co.kr 에서 찾아보길.)
\crontab -e
아랫줄 추가
00 07 * * * su - root -c '/root/bin/nam_back.sh' >& /dev/null
하고 저장 후 테스트 해보기위해서는 root/bin/에 스크립트(명)을 실행해본다.
가장 간단한 테스트 방법이다. 그럼 결과는 /back/밑에 있을것.
---------------------------------------------------------
몇몇 분이 퍼가셨는데 위는 단순히 html 등의 서버상의 파일만 백업합니다.
간단하게 mysql 파일도 백업한것을 올려두었으니 참고하세요.
백업은 다른 물리적파티션(다른하드에)하는것이 가장좋다고들 하지만
여유가 없기에 일단은 같은 내부의 다른파티션에 백업하고 있습니다.