작은숲:위키노트/리눅스 백업 스크립트

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
Utolee90 (토론 | 기여)님의 2022년 5월 7일 (토) 19:20 판 (Utolee90님이 리눅스 백업 스크립트 문서를 넘겨주기를 만들지 않고 작은숲:위키노트/리눅스 백업 스크립트 문서로 이동했습니다: 위키노트 문서 작은숲으로 이동)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

[[작은숲:위키노트/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
이 작은숲 문서의 출처는 위키노트의 위키노트/리눅스 백업 스크립트 문서입니다.