ある日(というよりも今日)、サーバー上にあるファイルを WinSCP を使ってコピーしようと思ったんですが、OpenSSH の秘密鍵は使えないと怒られたので、さてどうしたものかと・・
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 の鍵使えなかったかな?
0件のコメント