Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/book000/server-backup-v2
A tool for backup Linux servers on a regular basis.
https://github.com/book000/server-backup-v2
backup backup-script mariadb-backup mysql-backup python3 rsync-backup
Last synced: 7 days ago
JSON representation
A tool for backup Linux servers on a regular basis.
- Host: GitHub
- URL: https://github.com/book000/server-backup-v2
- Owner: book000
- License: mit
- Created: 2021-11-17T04:41:49.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-01-05T18:20:35.000Z (15 days ago)
- Last Synced: 2025-01-05T19:24:58.793Z (15 days ago)
- Topics: backup, backup-script, mariadb-backup, mysql-backup, python3, rsync-backup
- Language: Python
- Homepage: https://hub.docker.com/r/book000/server-backup-v2
- Size: 53.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-ja.md
- License: LICENSE
Awesome Lists containing this project
README
# server-backup-v2
[Click here for English README](README.md)
Linux サーバのバックアップを定期的に行うためのツールです。[book000/server-backup](https://github.com/book000/server-backup) を Python3 で書き直し他でも流用しやすくしたものです。
## Features
- `DBBackup`: MySQL や MariaDB のデータベースバックアップ
- `FullBackup`: SSH と rsync を用いた逆差分フルバックアップ## Requirements
- 有効な Discord Botトークンと書き込み可能なメッセージチャネル
- Python 3.9+
- [requirements.txt](requirements.txt): `PyMySQL`## Installation
1. GitHub リポジトリからクローンする: `git clone https://github.com/book000/server-backup-v2.git`
2. `requirements.txt` から依存関係パッケージをインストールする: `pip install -U -r requirements.txt`## Configuration
### Local Settings
デフォルトの設定ファイルは `config.json` です。明記していない場合文字列型で必須
- `discord`: Discord 通知系設定
- `token`: Bot トークン
- `channel`: 通知先チャンネル
- `dir`: データ保存ディレクトリ設定
- `backup`: バックアップ保存先ディレクトリ (デフォルト: `backup/`)
- `logs`: ログファイル保存先ディレクトリ (デフォルト: `logs/`)
- `db`: データベースバックアップ設定
- `enable`: データベースバックアップを有効にするか (boolean、デフォルト: false)
- `keep_days`: バックアップを保持する期間日数 (int、デフォルト: 30)
- `hostname`: ホスト名
- `port`: ポート番号
- `username`: ユーザー名
- `password`: パスワード
- `ignores`: データベース・テーブルの除外設定
- `db`: データベース名で含む場合除外 (list, デフォルト: [])
- `table`: テーブル名で含む場合除外 (list, デフォルト: [])
- `full`: フルバックアップ設定
- `enable`: フルバックアップを有効にするか (boolean、デフォルト: false)
- `keep_days`: バックアップを保持する期間日数 (int、デフォルト: 30)
- `hostname`: ホスト名
- `port`: ポート番号
- `username`: ユーザー名
- `password`: パスワード
- `identity`: 公開鍵パス
- `passphrase`: 公開鍵のパスフレーズ
- `from`: バックアップするディレクトリ (デフォルト: `/`)
- `ignores`: 除外するディレクトリ・ファイル (list、デフォルト: `[]`)### Server Settings
#### DB Backup
バックアップ用ユーザーアカウントには、以下の権限をグローバルで振る必要があります。
- データ: SELECT
- データ: FILE
- 構造: SHOW VIEW
- 管理: SUPER
- 管理: PROCESS
- 管理: LOCK TABLES#### Full Backup
バックアップは `rsync` で行われ、また全ファイルをバックアップするために `sudo` を用いています。
このため、tty なしでかつ `sudo rsync` をパスワード無しで利用できる必要があります。以下の内容をリモートサーバの `sudoers` ファイルに `visudo` で追記してください。
```
Defaults!/usr/bin/rsync !requiretty
USERNAME ALL=(ALL) NOPASSWD: /usr/bin/rsync
````USERNAME` にはリモートサーバにログインするユーザ名を指定する必要があります。
この設定を行うと、万が一このアカウントで SSH ログインが成功してしまった場合 root (sudo) で閲覧できるすべてのファイルを取得できるようになります。セキュリティの問題を懸念するのであれば、この機能を利用しないことをお勧めします。## License
このプロジェクトのライセンスは [MIT License](LICENSE) です。