automating-database-backups
データベースのバックアップ処理をスケジューリング、圧縮、暗号化で自動化できます。PostgreSQL(pg_dump)、MySQL(mysqldump)、MongoDB(mongodump)、SQLiteに対応しており、本番環境対応のバックアップスクリプトを生成します。保持ポリシーとリストア手順も含まれており、災害復旧に対応可能です。
description の原文を見る
Automate database backup processes with scheduling, compression, and encryption. Supports PostgreSQL (pg_dump), MySQL (mysqldump), MongoDB (mongodump), and SQLite. Generates production-ready backup scripts with retention policies and restore procedures. Trigger: "automate database backups", "schedule backups", "create backup script", "disaster recovery".
SKILL.md 本文
データベースバックアップの自動化
PostgreSQL、MySQL、MongoDB、SQLite 向けの本番環境対応バックアップスクリプトを圧縮、暗号化、スケジューリング、リテンション ポリシー付きで生成します。
クイックスタート
PostgreSQL バックアップ
#!/bin/bash
BACKUP_DIR="/var/backups/postgresql"
DB_NAME="mydb"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz"
pg_dump -h localhost -U postgres -d "$DB_NAME" \
--format=custom \
--compress=9 \
--file="$BACKUP_FILE"
# Encrypt with GPG (optional)
gpg --symmetric --cipher-algo AES256 --batch --passphrase-file /etc/backup.key "$BACKUP_FILE"
rm "$BACKUP_FILE"
MySQL バックアップ
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DB_NAME="mydb"
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -h localhost -u root -p"${MYSQL_PASSWORD}" \
--single-transaction \
--routines \
--triggers \
"$DB_NAME" | gzip > "${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz"
MongoDB バックアップ
#!/bin/bash
mongodump --uri="mongodb://localhost:27017" \
--db=mydb \
--out=/var/backups/mongodb/$(date +%Y%m%d_%H%M%S) \
--gzip
手順
ステップ 1: 要件の確認
ユーザーに以下の情報を質問します:
- データベースタイプ (PostgreSQL、MySQL、MongoDB、SQLite)
- データベース接続詳細 (ホスト、ポート、データベース名)
- バックアップスケジュール (cron 式または頻度)
- リテンション ポリシー (保持日数)
- 暗号化の要否 (はい/いいえ)
- バックアップ先 (ローカルパス、S3、GCS)
ステップ 2: バックアップスクリプトの生成
scripts/backup_script_generator.py を使用してカスタマイズされたバックアップスクリプトを作成します:
python3 {baseDir}/scripts/backup_script_generator.py \
--db-type postgresql \
--database mydb \
--output /opt/backup-scripts/mydb-backup.sh \
--compression gzip \
--encryption gpg
ステップ 3: Cron でのスケジューリング
scripts/backup_scheduler.py を使用して cron エントリを作成します:
python3 {baseDir}/scripts/backup_scheduler.py \
--script /opt/backup-scripts/mydb-backup.sh \
--schedule "0 2 * * *" \
--user postgres
ステップ 4: バックアップの検証
バックアップ完了後、整合性を検証します:
python3 {baseDir}/scripts/backup_validator.py \
--backup-file /var/backups/postgresql/mydb_20250115.sql.gz \
--db-type postgresql
ステップ 5: 復元手順の生成
対応する復元スクリプトを作成します:
python3 {baseDir}/scripts/restore_script_generator.py \
--db-type postgresql \
--database mydb \
--output /opt/backup-scripts/mydb-restore.sh
Cron スケジュール リファレンス
| スケジュール | Cron 式 | 説明 |
|---|---|---|
| 毎日午前 2 時 | 0 2 * * * | トラフィック が少ない時間帯 |
| 6 時間ごと | 0 */6 * * * | 頻繁なバックアップ |
| 毎週日曜日 | 0 2 * * 0 | 週単位の完全バックアップ |
| 毎月 1 日 | 0 2 1 * * | 月単位のアーカイブ |
リテンション ポリシーの例
# 日次バックアップを 7 日間保持
# 週次バックアップを 4 週間保持
# 月次バックアップを 12 ヶ月保持
find /var/backups -name "*.gz" -mtime +7 -delete # Daily cleanup
find /var/backups/weekly -mtime +28 -delete # Weekly cleanup
find /var/backups/monthly -mtime +365 -delete # Monthly cleanup
出力
- バックアップスクリプト: 圧縮と暗号化を備えたデータベース固有のシェルスクリプト
- Cron エントリ: インストール可能な crontab 設定
- 復元スクリプト: 各バックアップタイプに対応した復元手順
- 検証レポート: バックアップファイルの整合性チェック結果
エラーハンドリング
| エラー | 原因 | 対処方法 |
|---|---|---|
| Connection refused | DB が実行されていない | サービス状態を確認: systemctl status postgresql |
| Permission denied | 認証情報が間違っている | ユーザーがバックアップ権限を持っているか確認 |
| Disk full | 空きディスク容量がない | 空き容量を確認: df -h、古いバックアップをクリーンアップ |
| Lock timeout | アクティブなトランザクションが存在 | MySQL で --single-transaction を使用 |
リソース
{baseDir}/references/postgresql_backup_restore.md- PostgreSQL バックアップガイド{baseDir}/references/mysql_backup_restore.md- MySQL バックアップガイド{baseDir}/references/mongodb_backup_restore.md- MongoDB バックアップガイド{baseDir}/references/sqlite_backup_restore.md- SQLite バックアップガイド{baseDir}/references/backup_best_practices.md- セキュリティとストレージのベストプラクティス{baseDir}/references/cron_syntax.md- Cron スケジューリング リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Brmbobo
- リポジトリ
- Brmbobo/Web2podcast
- ライセンス
- MIT
- 最終更新
- 2026/1/26
Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。