Linux

일일백업 script

techapi 2025. 3. 11. 22:46
반응형

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