ある日(というよりも今日)、サーバー上にあるファイルを WinSCP を使ってコピーしようと思ったんですが、OpenSSH の秘密鍵は使えないと怒られたので、さてどうしたものかと・・

Photo by Caspar Camille Rubin on Unsplash

 

 

Nextcloud を ftp のごとくこき使ってみる

冒頭にも書いたんですが、WinSCP を使用してサーバー上のファイルを自宅PC のWindows 上で取り込もうとしたところ、

と怒られたので、「PuTTY形式に変換しますか?」と尋ねられても色々面倒くさいことしか想像できなかったので、ちょっと別の方法でファイルを送れないか、と考えた次第です。

FTPをセットアップすればいいじゃないか、と思われるかもしれませんが、そんなに頻繁に使うわけでもないのに、FTPの設定をセキュアに仕上げて、動作確認するっていうのは、ブログの記事のネタにはなるかもしれませんが、ちょっとめんどくさい。

そこで、Nextcloud ですよ。

すでにサーバーには、Nextcloud をセットアップしていたので、

「これって、サーバー上のファイルを直接 Nextcloud のディレクトリにコピーしたらいいんじゃない?」

と思うのは自明の理ですよね?

 

 

仮に、Nextcloud をインストールしているディレクトリが、/var/lib/nextcloud だとすると、あるユーザー、仮にsome.user のファイルが保存されているのは、

/var/lib/nextcloud/data/some.user/files

以下にあります。実際に、ls /var/lib/nextcloud/data/some.user/files/Documents とすると、Windows の Nextcloud クライアントで同期しているファイルがあることがわかります。

ということでさっそく、サーバーローカルにあるファイルを、Nextcloud のファイル側にコピーして、Windows 側で強制同期させてみたところ、

「ファイルが入ってこないやん。」

・・ファイルが動悸いや、同期されて入ってくるような気配がありません。

Windows のエクスプローラ側で「最新の状態」に更新してもダメ。

どうやら、こんな 安直な方法 ではダメみたいです。

 

OCC コマンドを使えばよいのだった

そこでネットで色々ググってみたところ、OCC コマンドを使ってできるみたいです。

仮に、ファイルを /var/lib/nextcloud/data/some.user/files/Documents/somefile にコピーしたとしたら、

sudo -u <webserver user> php /var/lib/nextcloud/occ files:scan --path="/some.user/files"

というコマンドを実行するといいみたい。

<webserver user は Ubuntu 上では www-data なので、それを踏まえて実行してみた。

$ sudo -u www-data php /var/lib/nextcloud/occ files:scan --path="/some.user/files"
Starting scan for user 1 out of 1 (some.user)
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 892     | 33043 | 00:03:13     |
+---------+-------+--------------+

その後、Windows 側で強制同期させると、

「ファイルが入ってきた!。」

ただ、この例で実行すると、全ファイルをスキャンするみたいで時間がかかる。

そこで、ディレクトリ、例えば/some.user/files/Documents/fromserverを作成して、そのディレクトリにコピーした場合は、オプションの--path="" の部分を変更すると、

$ sudo -u www-data php /var/lib/nextcloud/occ files:scan --path="/some.user/files/Document/fromserver"
Starting scan for user 1 out of 1 (some.user)
+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 1       | 1     | 00:00:00     |
+---------+-------+--------------+

このようにすると一瞬で終わります。

 

まとめ

インターネット上に公開したサーバーに、FTP をセットアップするとなると、設定が色々めんどくさいことになりますが、このように、Nextcloud をセットアップしていると、ftp サービスは必要ないかも、ということでした。

それにしても、WinSCP って OpenSSH の鍵使えなかったかな?

カテゴリー: Linuxubuntu

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。