작은숲:위키노트/리눅스 백업 스크립트
[[작은숲:위키노트/Apt-get 자동화 스크립트|Apt-get 자동화 스크립트]와 비슷하게 시스템 백업을 위해 만든 셸 스크립트. cron에 등록해두고 매일 백업한다.
backup.sh
#!/bin/sh
#----------------------------------------------------------------------------
# Copyright (c) 2005. Yoon, Hyunho <hhyoon@kldp.org>
# All rights reserved. Distributable under GPL.
# Please see http://www.gnu.org/copyleft/gpl.html
## Backup script
# $Id: BackupScript,v 1.1 2015/12/15 02:21:26 root Exp root $
#----------------------------------------------------------------------------
# configuration
DIR_BACKUP="/usr/backup"
STEP=3
#----------------------------------------------------------------------------
# backup $key $parent $src
backup()
{ echo "File Backup for $1 ..."
i=`expr $STEP - 1`
while [ $i -gt 0 ]
do
if [ -f "${DIR_BACKUP}/${1}.${i}.tar.gz" ]
then
next=`expr $i + 1`
mv -f "${DIR_BACKUP}/${1}.${i}.tar.gz" "${DIR_BACKUP}/${1}.${next}.tar.gz"
fi
i=`expr $i - 1`
done
if [ -f "${DIR_BACKUP}/${1}.tar.gz" ]
then
mv -f "${DIR_BACKUP}/${1}.tar.gz" "${DIR_BACKUP}/${1}.1.tar.gz"
fi
FILE="${DIR_BACKUP}/${1}.tar.gz"
cd $2
tar zcpf $FILE $3
chmod 600 $FILE
sleep 1
}#----------------------------------------------------------------------------
# remove old files
find $DIR_BACKUP -mtime +${STEP} -exec rm -rf {} \;
sleep 2
#----------------------------------------------------------------------------
# etc backup
KEY="etc"
backup $KEY "/" "etc"
# mysql backup
KEY="mysql"
backup $KEY "/var/lib" "mysql"
# user backup
KEY="hhyoon"
backup $KEY "/usr/user" "hhyoon"
#----------------------------------------------------------------------------
echo
echo "Backup compleate!"
echo
df -h
exit 0
/etc/cron.d/backup
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
5 5 * * * root test -x /root/bin/backup.sh && /root/bin/backup.sh
# EOF
| 배포판 | |
|---|---|
| 서버 프로그램 | |
| 시스템 도구 | |
| 시스템 보안 | |
| 시스템 설정 | |
| HOWTO 문서 | |
| 사용자 설정 | |
| 활용 | |
| 명령어 | |