🦔

UbuntuにおけるpCloudの自動マウント

2024/06/22に公開2

pCloudが提供しているLinuxコマンドラインツールpcloudccを用いて、Ubuntu Server 22.04の起動時に自動マウントする手順を記す。

ライブラリと導入手順については以下のGitHubリポジトリに存在する。

pcloudccのインストール

前提となるライブラリをインストールする。

terminal
sudo apt install -y cmake zlib1g-dev libboost-system-dev libboost-program-options-dev libpthread-stubs0-dev libfuse-dev libudev-dev fuse build-essential git

作業用ディレクトリ作成し、リポジトリをクローンする。

terminal
cd /tmp
mkdir console-client
git clone https://github.com/pcloudcom/console-client.git ./console-client/

ビルドおよびインストールをする。

terminal
cd console-client/pCloudCC/lib/pclsync/
make clean
make fs
cd ../mbedtls/
cmake .
make clean
make
cd ../..
cmake .
make
sudo make install
sudo ldconfig

インストールできたことを確認する。

terminal
pcloudcc

以下のように出力されたらOK。

pCloud console client v.2.0.1
Username option is required!!!

初期設定

pCloudのマウント先の設定

pCloudのマウント先を作成する。
ここではPCLOUD_MOUNT_DIRとし、/pcloudというディレクトリを作成するが、適宜置き換えてほしい。

terminal
PCLOUD_MOUNT_DIR=/pcloud
sudo mkdir ${PCLOUD_MOUNT_DIR}

なお、実行権限の問題も生じるので、置く場所によってはPCLOUD_MOUNT_DIRの所有権も変更しておくとよいだろう。

terminal
PCLOUD_ADMIN=user01
sudo chown ${PCLOUD_ADMIN}:${PCLOUD_ADMIN} ${PCLOUD_MOUNT_DIR}

手動でのマウント

以下のコマンドにより、PCLOUD_MOUNT_DIRに対してマウントされる。
ただし、PCLOUD_USERNAMEは、pCloudへのログインするアカウントとする。

terminal
PCLOUD_USERNAME=your@address
pcloudcc -p -u ${PCLOUD_USERNAME} -m ${PCLOUD_MOUNT_DIR}

以下の通り出力される。

pCloud console client v.2.0.1
Please, enter password

ここで、PCLOUD_USERNAMEに対応するパスワードを入力することにより、指定したPCLOUD_MOUNT_DIRに対してマウントされるようになる。
マウントされたことを確認する。

terminal
ls ${PCLOUD_MOUNT_DIR}

マウントされたことを確認したら、Ctrl+Cで終了する。

パスワードの記憶

pCloudのログインパスワードは~/.pcloud/data.dbに格納させることで、随時の入力を省略することができるようになる。
これはpcloudcc-sをつけることで、そのとき入力したパスワードを記録させることで実現される。

terminal
pcloudcc -p -s -u ${PCLOUD_USERNAME} -m ${PCLOUD_MOUNT_DIR}

いったんCtrl+Cで抜けて、以下のコマンドで再度ログインすればよい。

terminal
pcloudcc -u ${PCLOUD_USERNAME} -m ${PCLOUD_MOUNT_DIR}

手動でのアンマウント

ディレクトリの階層構成を確認の上実行すること。

terminal
pcloudcc -u ${PCLOUD_USERNAME} -k < <(printf "finalize")

サービス化の実行

サービス化を行う。
もし、pCloudのマウントがされている場合は、アンマウント等を行うこと。

以下の通り、pcloud.serviceを記述する。

terminal
sudo vi /etc/systemd/system/pcloud.service
[Unit]
Description=pCloud mount
After=network-online.target

[Service]
Type=forking
User=${PCLOUD_ADMIN}
Group=${PCLOUD_ADMIN}
WorkingDirectory=/home/${PCLOUD_ADMIN}
ExecStart=/usr/local/bin/pcloudcc -u ${PCLOUD_USERNAME} -m ${PCLOUD_MOUNT_DIR} -d
ExecStop=/usr/local/bin/pcloudcc -u ${PCLOUD_USERNAME} -k < <(printf "finalize")
Restart=always

[Install]
WantedBy=multi-user.target

サービスの開始および有効化を行う。

terminal
sudo systemctl daemon-reload
sudo systemctl start pcloud
sudo systemctl enable pcloud

参考にさせていただいたサイト

GitHubで編集を提案

Discussion

坦々狸坦々狸

とうとうコピーのコピー記事迄生まれてしまってワイ悲C

https://zenn.dev/tantan_tanuki/books/b9b35dfb5310df/viewer/708b0f

まぁ別にええんやけど2年以上VPS上でNAS運用してたらキャッシュサイズ肥大化し続ける問題に遭遇したから常用するなら早めにキャッシュの容量制限した方がええで

$ sqlite $HOME/.pcloud/data.db
# キャッシュサイズ10G制限
$ insert into setting (id,value) values('fscachesize',10737418240);
hr0t15hr0t15

なんかごめんなさい。
経緯というか、経過をたどったんですね。

なにはともかく、キャッシュの制限の話につきましてもありがとうございます。
pCloudってナレッジがないのみならず、なにかが起きてからでないとその手の作業ってしないというのもあり、こういうことを教えていただけるのは本当にありがたいですし、非常に勉強になります。