手当たり次第に書くんだ

飽きっぽいのは本能

tarとfindを使用したシンプルなバックアップスクリプト

私が使用しているシンプルなバックアップスクリプトを紹介します. こういったスクリプトはあまり凝らない様にするのがポイントですが, 意外と実践は難しいものです.

バックアップスクリプト

スクリプトの概要

  • FTPでリモートのサーバーにバックアップファイルを保管することを想定しているため一般ユーザーのディレクトリにバックアップファイルを作成する
  • サーバー内でバックアップファイルが無限に増えないようにfindコマンドでタイプスタンプを確認して, 前8日間のファイルのみ保持する. それ以外は削除する
  • バックアップ対象は別ファイルにパスを記載する

スクリプトの中身

#!/bin/bash

backup_hostname=`hostname`
backup_period="7"
backup_save_dir="/home/admin/backup/"
backup_target_dir="/root/bin/backup_list"
backup_date=`date "+%Y%m%d%H%M%S"`
backup_filename=$backup_save_dir"/"$backup_hostname"_"$backup_date".tar.gz"

tar czfP $backup_filename -T $backup_target_dir > /dev/null 2>&1
chown admin:admin $backup_filename
chmod 700 $backup_filename

find $backup_save_dir -type f -daystart -mtime +$backup_period -exec rm {} \;

スクリプトの使い方

1. adminユーザーを作成

rootユーザーでは, リモートでのバックアップファイルの扱いが困難な場合があるため, 一般ユーザーのディレクトリを使用します.

[root@centos ~]# useradd admin
[root@centos ~]# passwd admin

2. バックアップ用ディレクトリを作成

[root@centos ~]# mkdir /home/admin/backup 
[root@centos ~]# chmod 700 /home/admin/backup
[root@centos ~]# chown admin:admin /home/admin/backup

3. バックアップスクリプト配置

上のスクリプトをエディタから貼り付けます.

[root@centos ~]# vim /root/bin/backup
[root@centos ~]# chmod 700 /root/bin/backup

4. バックアップ対象ディレクトリ設定

[root@centos ~]# vim /root/bin/backup_list

対象ディレクトリは何でも構いません.

/root
/etc

5. スクリプトのテスト

[root@centos ~]# /root/bin/backup

問題なければ, /home/admin/backup/にバックアップファイルが作成されます.

6. CRON設定

毎日1時に実行する例です.

[root@centos ~]# echo "0 1 * * * root /root/bin/backup" > /etc/cron.d/backup
tarとfindを使用したシンプルなバックアップスクリプト

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る