前提と注意事項
- Ubuntu 22.04 へのインストールになります。
- Nextcloud サーバのインストール手順についての解説はありません。Nextcloud サーバはすでに構築済みとしています。
- 記事公開時点で最新のデスクトップクライアント 3.10 の CLI 版である
なお、この記事でインストールする CLI 版のクライアントは、デスクトップアプリ版のクライアントのように一度インストールして起動すれば後は自動で同期してくれるものではありません。
一度の同期を実行するためのコマンドラインツールとなるため、用途に合わせてcron
などを使って定期的に同期を実行するようにする必要があります。
CLI 版をインストールする
GUI 環境がないサーバーなどで使うことを想定して、以下の公式ドキュメントにあるnextcloudcmd
という CLI 版のクライアントツールをインストールします。
以下を実行して
Nextcloud Command Line Client
The Nextcloud Client packages contain a command line client, nextcloudcmd, that can be used to synchronize Nextcloud files to client machines.
docs.nextcloud.com
Ubuntu では以下のように apt リポジトリを追加してインストールします。
$ sudo add-apt-repository ppa:nextcloud-devs/client
$ sudo apt update
$ sudo apt install nextcloud-client
apt リポジトリの追加時には以下のように表示されるので Enter を押下して進めてください。
$ sudo add-apt-repository ppa:nextcloud-devs/client
[sudo] password for username:
PPA publishes dbgsym, you may need to include 'main/debug' component
Repository: 'deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu/ jammy main'
Description:
The Nextcloud desktop client compiled for Ubuntu.
This repository contains the stable releases of the client. For the cutting-edge, alpha version, see the alpha PPA at https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client-alpha.
There is also a beta PPA for the stable release candidates at https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client-beta.
After adding the PPA to your system as described below, the client can be installed by issuing one of the following commands depending on your system:
- Stock Ubuntu with Nautilus: sudo apt install nautilus-nextcloud
- KDE Ubuntu with Dolphin: sudo apt install dolphin-nextcloud
- Ubuntu MATE with Caja: sudo apt install caja-nextcloud
- Ubuntu Mint with Nemo: sudo apt install nemo-nextcloud
- Other, or if you don't want/need the file manager integration:
sudo apt install nextcloud-desktop
For support issues, please go to the GitHub page at https://github.com/nextcloud/desktop. This PPA is for packaging only, so contact the maintainer only if your issue is clearly with packaging.
NOTE for Bionic users: Bionic includes Qt 5.9 but the Nextcloud client requires Qt 5.12 recently, so there are no more updates for Bionic here.
NOTE for Xenial users: because Xenial contains some outdated libraries, such as Qt5.5 and libssl 1.0, which are no longer fully supported by the Nextcloud client, the Xenial build in this repository is on a strictly best-effort basis only. It means that some functionality may not work properly or at all. It is also possible that Xenial support in this PPA will be discontinued altogether at some point in the future.
More info: https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
Enter 押下すると apt リポジトリが追加されapt update
も実行されます。
続いてインストール実行します。Y
を入力して Enter するとインストールが開始されます。
$ sudo apt install nextcloud-client
...省略...
qml-module-qt-labs-settings qml-module-qtgraphicaleffects
qml-module-qtmultimedia qml-module-qtqml qml-module-qtqml-models2
qml-module-qtquick-controls2 qml-module-qtquick-dialogs
qml-module-qtquick-layouts qml-module-qtquick-privatewidgets
qml-module-qtquick-templates2 qml-module-qtquick-window2 qml-module-qtquick2
qt5-gtk-platformtheme qttranslations5-l10n
アップグレード: 0 個、新規インストール: 56 個、削除: 0 個、保留: 14 個。
75.3 MB のアーカイブを取得する必要があります。
この操作後に追加で 249 MB のディスク容量が消費されます。
続行しますか? [Y/n]Y
インストール完了後、以下のようにバージョンを表示できれば正常にインストールできています。
$ nextcloudcmd -v
Nextcloud version 3.11.0-20231212.130516.f91ae00cf-1.0~jammy1
Using Qt 5.15.3, built against Qt 5.15.3
Using 'OpenSSL 3.0.2 15 Mar 2022'
Running on Ubuntu 22.04.3 LTS, arm64
同期を実行する
以下のようにnextcloudcmd
コマンドを使うことで、好きなディレクトリを Nextcloud サーバと同期させることができます。
$ nextcloudcmd /home/username/my-nextcloud-dir https://example.com
Please enter username: [email protected]
Password for account with username [email protected]:
上記のように、Nextcloud のユーザ名、パスワードを聞かれるので入力します。
上記の例では、/home/username/my-nextcloud-dir
というディレクトリを Nextcloud サーバ(https://example.com
)と同期するディレクトリとして設定しています。
パスワードを入力して Enter すると色々なログが表示され同期が開始されます。
SelfOrChild OCC::PropagatorJob::Running pending uploads 1 subjobs state OCC::PropagatorJob::Running
12-10 00:02:43:948 [ info nextcloud.sync.checksums ]: Computing "SHA1" checksum of "/home/username/my-nextcloud-dir/.Nextcloud Manual.pdf.~117f388c" in a thread
12-10 00:02:44:084 [ info nextcloud.sync.database ]: Updating file record for path: "Nextcloud Manual.pdf" inode: 689565 modtime: 1700174032 type: CSyncEnums::ItemTypeFile etag: "5963569e8cbb3ae6b0f3cba39a8e2749" fileId: "00000033ocxh0ycsx2rp" remotePerm: "WDNVR" fileSize: 15069794 checksum: "SHA1:b2569e669a182bcf3b50f70b45e69fc304efb040" e2eMangledName: "" isE2eEncrypted: false lock: false lock owner type: 0 lock owner: "" lock owner id: "" lock editor: "" sharedByMe: false isShared: false lastShareStateFetchedTimestamp: 1702479757054
12-10 00:02:44:084 [ info nextcloud.sync.propagator ]: Completed propagation of "Nextcloud Manual.pdf" by OCC::PropagateDownloadFile(0xaaaadafc64b0) with status OCC::SyncFileItem::Success
12-10 00:02:44:088 [ info nextcloud.sync.propagator.root.directory ]: scheduleSelfOrChild OCC::PropagatorJob::Running pending uploads 1 subjobs state OCC::PropagatorJob::Running
最終的に以下のように表示されて同期も完了します。
...省略...
12-10 00:03:34:369 [ info nextcloud.sync.propagator.bulkupload ]: Item completed "test.txt" OCC::SyncFileItem::Success CSyncEnums::CSYNC_INSTRUCTION_NEW ""
12-10 00:03:34:369 [ info nextcloud.sync.propagator ]: Completed propagation of "test.txt" by OCC::BulkPropagatorJob(0xaaaadafc26d0) with status OCC::SyncFileItem::Success
12-10 00:03:34:369 [ info nextcloud.sync.propagator.bulkupload ]: final status OCC::SyncFileItem::NoStatus
12-10 00:03:34:370 [ info nextcloud.sync.propagator.root.directory ]: OCC::SyncFileItem::Success slotSubJobsFinished OCC::PropagatorJob::Running pending uploads 0 subjobs state OCC::PropagatorJob::Finished
12-10 00:03:34:373 [ info nextcloud.sync.propagator.root.directory ]: scheduleSelfOrChild OCC::PropagatorJob::Running pending uploads 0 subjobs state OCC::PropagatorJob::Finished
12-10 00:03:34:374 [ info nextcloud.sync.propagator ]: PropagateRootDirectory::slotDirDeletionJobsFinished emit finished OCC::SyncFileItem::Success
12-10 00:03:34:375 [ info nextcloud.sync.engine ]: Sync run took 57371 ms
12-10 00:03:34:376 [ info nextcloud.sync.database ]: Closing DB "/home/username/my-nextcloud-dir/.sync_e937d22871cc.db"
なお、同期先として選択したディレクトリの中に存在するファイルやディレクトリは、そのまま残り Nextcloud サーバ側にも同期されます。
上記の例だと、ユーザー名とパスワードを入力する必要がありますが、以下のようにすることでユーザー名とパスワードを指定した状態で同期を実行できます。
$ nextcloudcmd -u [email protected] -p mypassword /home/username/my-nextcloud-dir https://example.com
あとはcron
やシェルスクリプトを組み合わせ好きなタイミングで同期を実行できます。
まとめ
GUI がない環境でも Nextcloud のサーバと同期することができる CLI 版のクライアントをインストールする手順を解説しました。