Home > Diary | PC | Server | Skill > バックアップシェルスクリプト作ってみた

バックアップシェルスクリプト作ってみた

常々バックアップしなくちゃと思いつつ今まで面倒くさくて(爆)やってなかったバックアップだが、テスト週間だというのにシェルスクリプトを作ってしまったww

まあ、短いスクリプトだから問題ない!(きっと・・)

#!/bin/sh
export LANG=

 

echo "Job Name (backup.sh)"
echo "作成年月日(`date +"%Y年%m月%d日"`)"
echo "開始(`date +"%k時%M分%S秒"`)"
#ディレクトリ移動
cd /home/backup

#バックアップディレクトリ作成
mkdir `date +%Y%m%d`
cd /home/backup/`date +%Y%m%d`

 

echo " 開始(`date +"%k時%M分%S秒"`) [www]"
#wwwサーバーデータをバックアップ
tar cf wwwbackup-`date +%Y%m%d`.tar /www

#awstatsディレクトリをバックアップ
tar rf wwwbackup-`date +%Y%m%d`.tar /awstats

#バックアップデータをbzipで圧縮
bzip2 wwwbackup-`date +%Y%m%d`.tar

 

echo " 開始(`date +"%k時%M分%S秒"`) [home]"
#ホームディレクトリバックアップ
tar cf homebackup-`date +%Y%m%d`.tar \

/home/hoge /home/hogehoge /home/..... 

#bzip圧縮
bzip2 homebackup-`date +%Y%m%d`.tar

 

echo " 開始(`date +"%k時%M分%S秒"`) [config]"
#各種設定ファイル
tar cf configbackup-`date +%Y%m%d`.tar \

/etc/apache2 /etc/postfix /etc/dovecot /etc/mailman /etc/awstats\

/etc/munin /etc/ssh /etc/php5 /etc/aliases /etc/aliases.db

bzip2 configbackup-`date +%Y%m%d`.tar

#tarアーカイブ削除
rm -f *.tar

 

echo "終了(`date +"%k時%M分%S秒"`)"

一部改変してるけどほぼ元のまま。

最初、Cronから来るメールのtarのエラー文が文字化けしまくってたから、"export LANG="をつけたら問題なくなった。

設定ファイルのバックアップし忘れが怖い…ほかに何かバックアップしなきゃならないものあったっけか…何か忘れているものがあれば指摘をお願いします_(__;)_

 

これであと自動的にどっか別の鯖にバックアップファイルを送信してくれるようにしてくれたらなぁ・・・SSH経由でファイル送信できるような都合の良いネットストレージを少し探してみたけど見つからず・・・

当分はapache経由で自分のWindowsパソコンにダウンロードしてくるしかないか。というかずっとそうするしかないなw

 

 

>>2007.08.05 11:50追記<<

忘れてたMySQLのバックアップを追加。ついでに何度も使うdate +%Y%m%dは変数に代入して対応。後いらないけどPATH通した

#!/bin/sh
export LANG=
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
TODAY=`date +%Y%m%d`

 

echo "Job Name (backup.sh)"
echo "作成年月日(`date +"%Y年%m月%d日"`)"
echo "開始(`date +"%k時%M分%S秒"`)"


#ディレクトリ移動
cd /home/backup

#バックアップディレクトリ作成
mkdir $TODAY
cd ./$TODAY

 

echo " 開始(`date +"%k時%M分%S秒"`) [www]"
#wwwサーバーデータをバックアップ
tar cf wwwbackup-$TODAY.tar /www
#awstatsディレクトリをバックアップ
tar rf wwwbackup-$TODAY.tar /awstats
#バックアップデータをbzipで圧縮
bzip2 wwwbackup-$TODAY.tar

 

echo " 開始(`date +"%k時%M分%S秒"`) [home]"
#ホームディレクトリバックアップ
tar cf homebackup-$TODAY.tar \

/home/hoge /home/hogehoge /home/piyo
#bzip圧縮
bzip2 homebackup-$TODAY.tar

 

echo " 開始(`date +"%k時%M分%S秒"`) [config]"
#各種設定ファイルをバックアップ
tar cf configbackup-$TODAY.tar \

/etc/apache2 /etc/postfix /etc/dovecot /etc/mailman /etc/awstats \

/etc/munin /etc/ssh /etc/php5 /etc/aliases /etc/aliases.db
#bzip圧縮
bzip2 configbackup-$TODAY.tar

 

echo " 開始(`date +"%k時%M分%S秒"`) [mysql]"
#MySQLをバックアップ
mysqldump -u USER -p PASS -x --all-databases | bzip2 \

> mysqlbackup-$TODAY.bz2

 

#tarアーカイブ削除
rm -f *.tar

 

echo "終了(`date +"%k時%M分%S秒"`)"

まあ、こんなかんじで完成かなぁ・・・

Comments:2

Comment Form
meta 2007年8月 5日 02:38

玄箱買ってNFSでマウントするとか、そもそも中に送るとかw

freiheit 2007年8月 5日 11:15

玄箱も考えてはいるのですけど、買うとしてもずっと後になりそうです…

そういえばMySQLのバックアップのし忘れに気づきました。暇を見て修正しときます。
あと、設定ファイルは面倒くさいからいっそのこと/etcディレクトリごとバックアップを取ってしまおうかと思案中です・・

Home > Diary | PC | Server | Skill > バックアップシェルスクリプト作ってみた

Search
Feeds

Page Top