僕が自分のサーバーで使っている、ファイルを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]
コメント