1. 샘플 (database / pkg)
vi /root/script/dailybackup.sh (샘플)
#!/bin/bash
export LANG=C
CUR_DATE=`date +%Y%m%d`
EXP_DATE=`date +%Y%m%d --date '7 day ago'`
ERR_LOG="/data/dailybackup/$CUR_DATE/database/error_log.txt"
if [ ! -d /data/dailybackup/$CUR_DATE ];
then
mkdir -p /data/dailybackup/$CUR_DATE/database /data/dailybackup/$CUR_DATE/pkg /data/dailybackup/$CUR_DATE/mysql
fi
# 1. Backing up the database (MySQL) is here. That was kept during a week in /data/dailybackup and then removed by cronjob.
db_backup_list=`mysqlshow -uroot -p'!tob??' | grep -v Databases | grep -v \- | grep -v information_schema | grep -v performance_schema | awk '{print $2;}'`
for x in `echo $db_backup_list`
do
mysqldump --routines --log-error=$ERR_LOG --single-transaction --skip-lock-tables -uroot -p'!tobedata011' --add-drop-table ${x} > /data/dailybackup/$CUR_DATE/database/${x}.sql
done
/bin/gzip /data/dailybackup/$CUR_DATE/database/*.sql
# 2. pkg backup
pkg_backup_list="mysql"
cd /data; echo -e $pkg_backup_list | tar cvzfp pkg.$CUR_DATE.tar.gz -T -; mv pkg.$CUR_DATE.tar.gz /data/dailybackup/$CUR_DATE/pkg/
# 3. mysql backup
mysql_backup_list="mysql"
cd /data; echo -e $mysql_backup_list | tar cvzfp mysql.$CUR_DATE.tar.gz -T -; mv mysql.$CUR_DATE.tar.gz /data/dailybackup/$CUR_DATE/mysql/
# 4.
backup_list=`ls -1 /data/dailybackup`
for y in `echo $backup_list`
do
if [ $y -lt $EXP_DATE ];
then
rm -rf /data/dailybackup/$y
fi
done
2. 샘플 (apache / pkg)
#!/bin/bash
export LANG=C
CUR_DATE=`date +%Y%m%d`
EXP_DATE=`date +%Y%m%d --date '7 day ago'`
ERR_LOG="/data/dailybackup/$CUR_DATE/database/error_log.txt"
if [ ! -d /data/dailybackup/$CUR_DATE ];
then
mkdir -p /data/dailybackup/$CUR_DATE/apache /data/dailybackup/$CUR_DATE/pkg
fi
# 1. apache backup. The apache path to be backuped up is /etc/httpd.
tar cvzfhp /data/dailybackup/$CUR_DATE/apache/apache.$CUR_DATE.tar.gz /etc/httpd
# 2. pkg backup
pkg_backup_list="www"
cd /data; echo -e $pkg_backup_list | tar cvzfp pkg.$CUR_DATE.tar.gz -T -; mv pkg.$CUR_DATE.tar.gz /data/dailybackup/$CUR_DATE/pkg/
# 3.
backup_list=`ls -1 /data/dailybackup`
for y in `echo $backup_list`
do
if [ $y -lt $EXP_DATE ];
then
rm -rf /data/dailybackup/$y
fi
done
3. Cron 등록
chmod 744 /root/script/dailybackup.sh
5 4 * * * /root/script/dailybackup.sh
'Linux' 카테고리의 다른 글
SVN 서버 설치 (0) | 2025.03.11 |
---|---|
Log 일일백업 script (0) | 2025.03.11 |
Softether VPN (0) | 2025.03.11 |
Xymon client 설치 (0) | 2025.03.11 |
Log rotate 설정 (0) | 2025.03.11 |