[Anki]データのバックアップ

TIPS
TIPS

せっかく構築した自分だけのAnkiサーバーですから、データが消えてしまうリスクは確実に防いでおきたいですね。

Linuxの標準機能である cron(クーロン)という自動実行システムを使って、「毎日夜中に自動でデータを圧縮してバックアップし、古いものは自動で削除する」 という運用を手間なく実現する方法を解説します。

今回は、セキュリティを考慮して作成した anki ユーザーの権限でバックアップを設定します。

1. バックアップ用スクリプトの作成

まずは、バックアップ処理をまとめた小さなプログラム(シェルスクリプト)を作成します。

1. anki ユーザーに切り替える

sudo su - anki

2. バックアップ保存用のディレクトリを作成する

mkdir -p ~/anki-backup

3. スクリプトファイルを作成する

nano ~/anki-backup.sh

4. 以下のコードを貼り付ける

このスクリプトは、データを丸ごと圧縮(tar.gz形式)して保存し、ストレージ容量を圧迫しないよう「7日以上前の古いバックアップ」を自動で削除する仕組みになっています。

#!/bin/bash

# 日付を取得(例: 20260305_020000)
DATE=$(date +\"%Y%m%d_%H%M%S\")

# ディレクトリの指定
SOURCE_DIR=\"/home/anki/anki-data\"
BACKUP_DIR=\"/home/anki/anki-backup\"
BACKUP_FILE=\"$BACKUP_DIR/anki_data_$DATE.tar.gz\"

# 1. データを圧縮してバックアップを作成
tar -czf \"$BACKUP_FILE\" -C /home/anki anki-data

# 2. 7日以上経過した古いバックアップファイルを自動削除
find \"$BACKUP_DIR\" -name \"anki_data_*.tar.gz\" -type f -mtime +7 -delete

5. 保存して終了し、スクリプトに実行権限を付与する

chmod +x ~/anki-backup.sh
[Anki]データのバックアップ
[rclone]UbuntuでpCloudを使う
UbuntuでpCloudをネットワークドライブとして活用するため、rcloneの導入からマウント、systemdによる自動起動設定までを解説。vfs-cache-modeの最適化により、ローカル同様の快適な操作環境を構築する手順を紹介します。

2. cron(自動実行)の設定

作成したスクリプトを「毎日決まった時間」に動かすよう設定します。

1. crontab(自動実行のスケジュール表)を開く

※ まだ anki ユーザーのままで実行してください。

crontab -e

(初回起動時はエディタを聞かれることがあります。その場合は 1(nano)を選んでください)

2. ファイルの一番下に以下の1行を追記する

これは「毎日、深夜の午前2時0分にスクリプトを実行する」という設定です。

0 2 * * * /home/anki/anki-backup.sh

3. 保存して閉じる

crontab: installing new crontab と表示されれば設定完了です。

最後に exit と入力して、元のユーザー(sudo権限のあるユーザー)に戻っておきましょう。

exit
[Anki]データのバックアップ
[Anki]同期ユーザ追加
Anki公式同期サーバーで複数ユーザーを追加・管理する方法を解説。systemdの設定ファイルに環境変数を連番で追記するだけで、データが混ざることなく安全に複数アカウントを運用できる手順を紹介します。

3. バックアップの復元方法(万が一の時)

もしサーバーのデータが飛んでしまったり、操作を誤ってカードを消してしまったりした場合は、以下の手順で簡単に元に戻せます。

  1. 壊れてしまった現在のデータを退避(または削除)する。sudo mv /home/anki/anki-data /home/anki/anki-data_broken
  2. 最新のバックアップファイルを解凍して展開する。sudo tar -xzf /home/anki/anki-backup/anki_data_20260305_020000.tar.gz -C /home/anki
  3. Ankiサーバーを再起動する。sudo systemctl restart anki-sync-server.service

これで、サーバー構築からセキュリティ対策、タイムアウトのチューニング、そして自動バックアップまで、商用サービスレベルの堅牢なAnki同期サーバーが完成しました!

Q よくある質問 (FAQ)
Q. バックアップスクリプトをrootではなくankiユーザーの権限で実行する理由は?
A.
万が一スクリプトに脆弱性やバグがあった場合でも、システム全体への影響を最小限に抑え、セキュリティリスクを低減するためです。
Q. バックアップからデータを復元する際、事前にAnkiサーバーを停止する必要はありますか?
A.
データの整合性を保ち、復元中の書き込みによる破損を防ぐため、復元作業の前にAnkiサーバーのサービスを一時停止することをお勧めします。

コメント

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