シェルスクリプト

バックアップスクリプトを作る【rsyncで差分バックアップを自動化】

シェルスクリプト
記事内に広告が含まれています。

大切なデータを守るバックアップスクリプトをrsyncで作ります。差分バックアップで効率よく、世代管理もできます。

rsyncの基本

rsync -av /source/ /backup/
rsync -avz -e ssh /source/ user@remote:/backup/
rsync -av --delete /source/ /backup/

注意:--delete は送信元にないファイルをバックアップ先から削除します。実行前に必ず対象パスを確認してください。

世代管理バックアップスクリプト

#!/bin/bash
SRC="/var/www/html"
BACKUP_BASE="/backup"
DATE=$(date "+%Y%m%d_%H%M%S")
BACKUP_DIR="$BACKUP_BASE/$DATE"
exec >> "/var/log/backup.log" 2>&1
echo "[$(date)] 開始"
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SRC/" "$BACKUP_DIR/"
echo "[$(date)] 完了"
find "$BACKUP_BASE" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;

まとめ

  • rsyncは差分のみ転送するので高速・効率的
  • --delete は強力なオプション。対象パスを必ず確認してから使う
  • 日付ディレクトリで世代管理、findで古い世代を自動削除できる
  • cronに登録して毎日自動実行するのが理想的

コメント

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