AlmaLinux 10で快適!rcloneを使ってDropboxをバックアップにフル活用する方法
この記事の要約(読了目安: 10秒)
- 対象者: Linuxサーバーのバックアップ環境をスマートに構築したい方、AlmaLinux 10でクラウドストレージを共有したい方。
- 何ができるようになるか: OSを起動するだけでDropboxの特定フォルダが自動マウントされ、一般ユーザーでもサクサク読み書き・共有ができる環境が手に入ります!
1. はじめに
Linuxサーバーの運用で一番の悩みどころといえば、やっぱり「データのバックアップ」ですよね。
今回は、最新の AlmaLinux 10 環境で、おなじみのクラウドストレージ「Dropbox」をローカルディレクトリのように扱えるツール rclone の設定に挑戦してみました!
「将来的にサーバーが増えても困らないようにしたいな〜」という願いを込めて、Dropbox内に SERVERS という親ディレクトリを作って、サーバーごとに作業領域をバシッと隔離する、スケーラブルでかっこいい構成を目指します。
それでは、さっそくいってみましょう!
2. 今回の環境
今回の検証環境はこんな感じです。
- OS: AlmaLinux 10 (最新のKernel 6.x系!)
- Tool: rclone v1.72.1 (おなじみのEPELリポジトリ版を使用)
- Filesystem: fuse3 (Alma10の標準ですね)
- マウント対象: Dropbox内の
SERVERS/srv-01.example.jpフォルダ - マウント先: Linux側の
/mnt/Dropbox
3. 下準備!依存パッケージとリポジトリを入れよう
AlmaLinux 10では、これまでお世話になった fuse ではなく fuse3 が標準になっています。rcloneはメンテナンスの手間を減らすために、EPELリポジトリからサクッとインストールしちゃいましょう。
# まずはfuse3をインストール!
sudo dnf install -y fuse3
# EPELリポジトリとCRBリポジトリを有効化します
sudo dnf install -y epel-release
sudo dnf config-manager --set-enabled crb
# そして真打ち、rcloneをインストール!
sudo dnf install -y rclone
これで準備は万端です!
4. Dropboxと連携!リモート設定(rclone config)
サーバー環境(GUIなし)でDropboxと連携させるために、今回は「ヘッドレス認証」という方法を使います。ブラウザが使える手元のPC(WindowsやMac)をちょっとだけお手伝いに使いましょう。
認証の手順
- Linux側:
rclone configを実行!New remoteを選んで、名前はDropBoxに。- ストレージタイプは
Dropboxを探して、番号を入力。 - 「ブラウザを使って自動認証しますか?」という質問には、力強く n (No) と答えます。
- 手元のPC側: コマンドプロンプトやターミナルで
rclone authorize "dropbox"を実行!- ブラウザがパッと開くので、Dropboxにログインして「許可」をポチッと押します。
- すると、ターミナルに長いJSON形式のトークンが表示されるので、これをコピー。
- Linux側: 取得したトークンを貼り付けて保存すればOK!
qで設定画面を抜けます。
5. いざマウント!権限設定も忘れずに
一般ユーザーでも自由にファイルを読み書きできるように、FUSEの設定を少しだけいじってあげます。ここがちょっとしたポイントです!
FUSE設定をちょっと修正
root以外のユーザーもマウントポイントが見れるように、制限を解除しちゃいましょう。
# root以外へのアクセス許可設定を有効化!
sudo sed -i 's/#user_allow_other/user_allow_other/' /etc/fuse.conf
特定フォルダを狙い撃ちでマウント!
Dropbox全部を見せるのではなく、このサーバー専用のディレクトリ(SERVERS/srv-01.example.jp)だけを /mnt/Dropbox に紐付けます。
# マウントポイントを作ります
mkdir -p /mnt/Dropbox
# マウント開始!
# --allow-other : 他のユーザーも使えるように
# --umask 0000 : 全ユーザーが自由に書き込める権限(777)を付与!
rclone mount DropBox:SERVERS/srv-01.example.jp /mnt/Dropbox \
--vfs-cache-mode full \
--allow-other \
--umask 0000 \
--daemon
これで、もう自分のフォルダのように使えるようになっているはずです!
6. 面倒なことは自動化!Systemdで自動起動
せっかく設定しても、再起動のたびにコマンドを打つのは面倒ですよね。Systemdに登録して、OSが立ち上がると同時に自動でマウントされるように設定しましょう!
サービスファイルを作ろう(/etc/systemd/system/rclone-dropbox.service)
[Unit]
Description=rclone Dropbox Project Folder Mount
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# 複数サーバー管理を考えたパス設定にしています
ExecStart=/usr/bin/rclone mount DropBox:SERVERS/srv-01.example.jp /mnt/Dropbox \
--config=/root/.config/rclone/rclone.conf \
--vfs-cache-mode full \
--allow-other \
--umask 0000
# 終わる時は安全にアンマウント
ExecStop=/bin/fusermount3 -u /mnt/Dropbox
Restart=on-failure
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
サービスを有効に!
systemctl daemon-reload
systemctl enable rclone-dropbox.service
systemctl start rclone-dropbox.service
これで、あなたのサーバーはいつでもDropboxと繋がった状態になります!
7. ちゃんと動いてる?動作確認!
最後に、一般ユーザー(例: yourUserName)でログインして、実際にファイルが作れるか試してみましょう。
# 一般ユーザーでテスト!
touch /mnt/Dropbox/write_test.txt
ls -l /mnt/Dropbox/write_test.txt
オーナーはrootになりますが、umask 0000 のおかげで一般ユーザーからでも追加・削除・編集が自由自在!とっても便利ですね〜。
コラム:やってみてわかった「ここがミソ!」
- 将来を見据えたディレクトリ設計:
DropBox:SERVERS/{hostname}という階層にすることで、1つのDropboxアカウントでたくさんのサーバーをスッキリ管理できちゃいます。 - AlmaLinux 10でもいける!: 最新OSですが、既存のel9用バイナリが驚くほど安定して動いてくれました。
- FUSEの権限は「急所」: rootでマウントする時、
user_allow_otherの有効化を忘れると「あれ?権限がないぞ?」とハマりやすいので注意してくださいね。 - 転んでもタダでは起きない自動復旧: Systemdの
Restart=on-failureのおかげで、ネットが一時的に切れても10秒後には自動で再試行してくれます。頼もしい!
お疲れ様でした!これでクラウドを活用したバックアップライフの始まりです。
ぜひ皆さんの環境でも試してみてくださいね!