bashによるファイルバックアップ・3世代作成スクリプト公開!

僕が自分のサーバーで使っている、ファイルを3世代管理でバックアップを取っているスクリプトを公開!
といっても、自分で見ても、ちょっと書き方というか作りが雑ね~

使い方は、

 1.どっかに以下スクリプト「bak_contents_files.sh」「bak_contents_files_funk.sh」を設置
 2.両スクリプトの(要変更)箇所を変更
 3.cronで「sh bak_contents_files.sh」を実行 ※自動でやる場合は

とまあ、そんな感じです^^

超我流で考えたので、参考になればいいですけどね~
(もしくはうまく作り変えたら僕に教えてください^^)

★ファイルバックアップシェルスクリプト(メインスクリプト)
 bak_contents_files.sh
[perl]
#————————————————-
# ■ファイルバックアップシェルスクリプト(メインスクリプト)
#————————————————-

# ★環境ごとに設定(要変更)———————————

# バックアップ先を記述
base_dir=”/mnt/hdd/bak/server/”

# バックアップしたいルートディレクトリを指定(「bak_contents_files_funk.sh」の引数として)
sh bak_contents_files_funk.sh boot
sh bak_contents_files_funk.sh home
sh bak_contents_files_funk.sh var
#sh bak_contents_files_funk.sh 【ディレクトリ名を記入!】

# ★処理内容(変更不要)—————————————

# log
echo “バックアップ完了日時” >> ${base_dir}/bak.log
date >> ${base_dir}bak.log

exit

[/perl]

★ファイルバックアップシェルスクリプト(サブスクリプト)
 bak_contents_files_funk.sh
[perl]
#————————————————-
# ■ファイルバックアップシェルスクリプト(サブスクリプト)
#————————————————-

# ★環境ごとに設定(要変更)———————————

cp_dir1=$1 #変更不要
cp_dir2=”/mnt/hdd/bak/server/” #要変更(バックアップ先を記述)

# ★処理内容(変更不要)—————————————

# 第2世代のバックアップを第3世代バックアップとして置き換える
rsync -av –delete ${cp_dir2}${cp_dir1}.1/ ${cp_dir2}${cp_dir1}.2/
# 第1世代バックアップを第2世代バックアップとして置き換える
rsync -av –delete ${cp_dir2}${cp_dir1}/ ${cp_dir2}${cp_dir1}.1/
# 現在のファイルを第1世代バックアップとして置き換える
rsync -av –delete /${cp_dir1}/ ${cp_dir2}${cp_dir1}/

# log
echo “バックアップ完了日時” >> ${cp_dir2}${cp_dir1}/bak.log
date >> ${cp_dir2}${cp_dir1}/bak.log
[/perl]

スポンサードリンク

コメント

タイトルとURLをコピーしました