ブログに戻る
1月 13, 2026ガイド

Linuxサーバーで自動バックアップを構成する方法

ファイルとデータベース用のcronジョブを使用した自動バックアップスクリプトの設定に関するステップバイステップガイド。

Linuxサーバーで自動バックアップを構成する方法

定期的なバックアップはデータの保護に不可欠です。このガイドでは、Hiddenceサーバーでシェルスクリプトとcronジョブを使用して、ファイルとデータベースの自動バックアップを設定する方法を説明します。

バックアップスクリプトの作成

ファイル用のバックアップスクリプトを作成します:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

Cronジョブの設定

cronを使用して自動バックアップをスケジュールします:

bash
sudo crontab -e
# 毎日午前2時にバックアップを実行するには、この行を追加してください
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

データベースバックアップスクリプト

MySQLデータベースバックアップ用のスクリプトを作成します:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

リモートバックアップストレージ

rsyncまたはSCPを使用してバックアップをリモートサーバーにコピーします:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

バックアップ保持ポリシー

特定の期間バックアップを保持するように構成します:

bash
# 日次バックアップを7日間保持する
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# 週次バックアップを4週間保持する
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# 月次バックアップを12ヶ月間保持する
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

バックアップのベストプラクティス

  • 定期的にバックアップの復元をテストしてください
  • バックアップを複数の場所に保存してください
  • 機密性の高いバックアップデータを暗号化してください
  • エラーがないかバックアップログを監視してください
  • バックアップ手順を文書化してください
  • バックアップ失敗時のアラートを設定してください