[리눅스] 유저 홈페이지 Data 및 MySQL DB 백업



User 홈페이지 및 데이터베이스를 백업하는 쉘스크립트입니다.


7일이 경과한 백업파일을 자동으로 지워줍니다.


크론에 등록하고 사용하면 됩니다.


#!/bin/sh


DB_ROOT_ID="root"

DB_ROOT_PW="DB비밀번호"

TODAY=`date +%Y%m%d`

DELETE_DATE=`date +%Y%m%d --date='7 days ago'`

DAY_OF_WEEK=`date +%u`

HOME_DIR="/home"

BACKUP_DIR="/백업경로"

ZIP_PW="압축비밀번호"


echo "

Start : "`date` >> /root/log/backup-users.log



for USER_NAME in $(ls $HOME_DIR | grep -v "centos") ; do

if [ -d "$HOME_DIR/$USER_NAME" ] ; then

    USER_BACKUP_DIR="${BACKUP_DIR}/${USER_NAME}"


    if [ ! -d "$USER_BACKUP_DIR" ] ; then

        mkdir -m 700 $USER_BACKUP_DIR

    fi


    if [ ! -d "$USER_BACKUP_DIR/$TODAY" ] ; then

        mkdir -m 700 $USER_BACKUP_DIR/$TODAY

    fi

    USER_BACKUP_DIR="${BACKUP_DIR}/${USER_NAME}/${TODAY}"


    DB_BACKUP_NAME="${USER_BACKUP_DIR}/${USER_NAME}.sql.gz"

    mysqldump -u${DB_ROOT_ID} -p${DB_ROOT_PW} ${USER_NAME} --opt --lock-tables=false | gzip > ${DB_BACKUP_NAME}

    sleep 3

    zip -0P$ZIP_PW $DB_BACKUP_NAME.zip $DB_BACKUP_NAME

    sleep 3

    rm $DB_BACKUP_NAME


    sleep 5

    USER_DIR="${HOME_DIR}/${USER_NAME}"

    DATA_BACKUP_NAME="${USER_BACKUP_DIR}/${USER_NAME}_data.tar.gz"

    cd ${USER_DIR}

    tar czfp $DATA_BACKUP_NAME ./www

    sleep 3

    zip -0P$ZIP_PW $DATA_BACKUP_NAME.zip $DATA_BACKUP_NAME

    sleep 3

    rm $DATA_BACKUP_NAME

    cd


    USER_BACKUP_DEL_DIR="${BACKUP_DIR}/${USER_NAME}/${DELETE_DATE}"

    if [ -d "$USER_BACKUP_DEL_DIR" -a "$USER_BACKUP_DEL_DIR" != "" ] ; then

        rm -rf ${USER_BACKUP_DEL_DIR}

    fi

    sleep 5

fi

done


echo "End User Backup : "`date` >> /root/log/backup-users.log


홈페이지 경로는 /home/유저계정/www 기준으로 되어있으니 자신의 환경에 맞게 수정하세요~


파일 첨부합니다.


backup-users.sh.txt


블로그 이미지

iVPS 영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

댓글을 달아 주세요