[리눅스] 유저 홈페이지 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 기준으로 되어있으니 자신의 환경에 맞게 수정하세요~
파일 첨부합니다.
'LINUX' 카테고리의 다른 글
[아파치] 홈페이지 아이피로 접근시 차단 (0) | 2018.12.03 |
---|---|
[리눅스] vnstat eth0 No such file or directory (1) | 2018.11.30 |
CentOS 웹서비스 start stop 쉘스크립트 (0) | 2018.11.30 |
LETSENCRYPT SSL 인증서 자동갱신 쉘스크립트 (0) | 2018.11.30 |
저사양 VPS 스왑메모리 생성 스크립트 (0) | 2018.11.26 |