Skip to content
temetekePublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

backup

rsyncを使用した増分バックアップツール

概要

backup.shは、rsyncを使用してディレクトリを効率的にバックアップするシェルスクリプトです。タイムスタンプ付きのバックアップを作成し、ハードリンクを使用して重複データを削減します。また、1ヶ月以上経過した古いバックアップを自動的に削除します。

機能

  • 増分バックアップ: rsyncの--link-destオプションを使用して、変更されたファイルのみを保存
  • タイムスタンプ管理: YYYYMMDDHHMM形式でバックアップを整理
  • 自動クリーンアップ: 1ヶ月以上前のバックアップを自動削除
  • 重複実行防止: PIDファイルによるロック機構
  • 柔軟なフィルタリング: include/excludeパターンのサポート
  • ドライラン: 実際に実行する前に動作を確認可能

インストール

make install

これによりbackup.shが~/bin/にコピーされます。

アンインストール

make uninstall

使い方

backup.sh [OPTION] SRC DEST

オプション

  • -e <pattern>: 除外するファイルパターンを指定
  • -h: ヘルプを表示
  • -i <pattern>: 含めるファイルパターンを指定
  • -n: ドライラン(実際には実行せず、動作を確認)
  • -v: 詳細出力

引数

  • SRC: バックアップ元のディレクトリ
  • DEST: バックアップ先のディレクトリ

使用例

基本的な使い方

backup.sh /home/user/documents /mnt/backup

特定のファイルを除外

backup.sh -e '*.tmp' -e '.cache' /home/user/documents /mnt/backup

ドライランで確認

backup.sh -n -v /home/user/documents /mnt/backup

詳細出力を有効にする

backup.sh -v /home/user/documents /mnt/backup

バックアップの構造

バックアップは以下のような構造で保存されます:

/mnt/backup/
└── _home_user_documents/
    ├── 202501150900/
    ├── 202501151200/
    └── 202501151800/

各ディレクトリ名はバックアップの日時を表します。

仕組み

  1. ソースと宛先のディレクトリを検証
  2. PIDファイルで重複実行をチェック
  3. 最後のバックアップを特定
  4. rsyncで新しいバックアップを作成(--link-destで前回からの変更のみ保存)
  5. 1ヶ月以上前の古いバックアップを削除

注意事項

  • バックアップ元とバックアップ先は両方とも存在するディレクトリである必要があります
  • 同じソースに対して同時に複数のバックアップを実行することはできません(PIDファイルによる制御)
  • 古いバックアップの自動削除は1ヶ月を基準としています

ライセンス

このプロジェクトのライセンス情報については、リポジトリを参照してください。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages