Jul 31: [Linux] DBとソースを毎日自動バックアップするシェル作成 この内容をはてなブックマークに追加 この内容をYahoo!ブックマークに登録 この内容をlivedoorクリップに登録 この内容をBuzzurlに登録

ウェブサイトのソースとDBを毎日自動バックアップする方法です。
バックアップデータは過去5日間保存してその前のデータは削除します。
ホームディレクトリの中でバックアップが必要なところだけバックアップを残します。
DBも必要なDBのみバックアップします。

シェル作成後、Cronに登録して毎日4時自動でバックアップが行われるようにします。
cron確認:crontab -l
cron編集:crontab -e

・バックアップするディレクトリリスト

[root@localhost backup]# vi bk_dir.name
wiki
sns
manual
blog 



・バックアップするDBリスト

[root@localhost backup]# vi bk_db.name
information_schema
mysql
wiki
sns
manual
blog 



・バックアップ用のシェル「backup.sh」

#!/bin/sh

#日付
today=`date +%Y%m%d`
oldday=`date --d "5day ago" +%Y%m%d`

#パス
target_dir="/home/lucen/backup"
db_dump="/usr/bin/mysqldump"
mysql="/usr/bin/mysql"

#バックアップ用のディレクトリ作成
function mk_dir(){
        if [ ! -e $target_dir/$today ]
        then
        mkdir -p $target_dir/$today
        fi
}

#ソースバックアップ
function home_backup(){
        while read dir_name;
        do
        tar Pcfz $target_dir/$today/${dir_name}.tar.gz /home/$dir_name;
        done $target_dir/bk_dir.name
}

#DBバックアップ
function db_backup(){
        while read db_name;
        do
        $db_dump -u root $db_name $target_dir/$today/${db_name}.sql
        done $target_dir/bk_db.name
}

#5日前のバックアップ削除
function rm_dir(){
        if [ -e $target_dir/$oldday ]
        then
        rm -rf $target_dir/$oldday
        fi
}

mk_dir
home_backup
db_backup
rm_dir

exit 



・作成したファイルが実行できるようにします。

#変更前
[root@localhost backup]# ll
-rw-r--r-- 1 root root  669  7月 31 20:56 backup.sh

#実行可能に変更
[root@localhost backup]# chmod u+x backup.sh

#変更後
[root@localhost backup]# ll
-rwxr--r-- 1 root root  669  7月 31 20:56 backup.sh 



・cron登録

[root@localhost backup]# crontab -e
0 4 * * * /home/lucen/backup/backup.sh 



・cron確認

[root@localhost backup]# crontab -l
0 4 * * * /home/lucen/backup/backup.sh 

Category: Linux | Posted by: lucen

Comments

Add Comment

このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。