ownCloudサーバ側でファイルを追加する
ownCloudについての全投稿は/tag/owncloudを参照してほしい。
※以下には続編がある。ownCloudグループにいる技術者から、occ file:scanはこのような使い方をすべきでは無いと忠告されたため、WebDAVによるアクセスに切り替える予定。やり方は、ownCloudにWebDAV経由でアクセスするに記述した。
ownCloudは、そのクライアントどうしでファイルを共有できる仕組みなのだが、しかし特にサーバ側で発生したファイルをクライアントにダウンロードさせたい。
以下はCentOS-6.9、OwnCloud-9での操作。
目的:サーバファイルのバックアップをしたい
この目的としては、サーバファイルのバックアップをとることである。このサーバは多数のウェブサイトやgit開発レポジトリを抱えているので、そのバックアップファイルを自動的にownCloud管理にし、クライアントがONのときに自動でダウンロードさせたい。
ownCloudがインストールされているならば、他にこのようなバックアップ機能をつけるより、楽になるだろうとの予測のもとにやってみる。
ファイルはどこにあるのか?
あるユーザ名、usernameのファイルは「/var/lib/owncloud/data/username/files」にある。ownCloudがインストールされた点で以下のフォルダ・ファイルが自動的に作成されている。
drwxr-xr-x 2 apache apache 4096 Mar 12 14:40 Documents
drwxr-xr-x 2 apache apache 4096 Mar 12 13:59 Photos
-rw-r--r-- 1 apache apache 4055415 Mar 12 13:59 ownCloud Manual.pdf
そこで、「/var/lib/owncloud/data/username/files/Documents」に適当にファイルを置いてみるが、当然ながら何も起こらない。
ファイルをスキャンする。
調べてみると、ファイルスキャンなるものをする必要があるという、それもwwwユーザの権限で。おそらくCentOSの環境ではapacheだろう。そして、sudoコマンドも必要である。
yum list installed | grep sudo
でsudoコマンドの存在を確認し、以下のコマンドを投入する。
sudo -u apache php /usr/share/owncloud/occ file:scan username
コマンド投入時に、特に特定のフォルダをカレントにする必要は無い。指定されたユーザのファイルすべてをスキャンするようだ。
これで勝手に置いたファイルが同期対象になるようで、無事にクライアント側に現れた。
サーバ側で削除するとゴミ箱には入らない
これは当然のことかと思うが、いったんownCloud管理になったファイルを、サーバ側で削除しocc file:scanによる同期を行うと、ownCloudからも削除されることになるが、その場合は(クライアントで削除したようには)ゴミ箱に入ることは無い。
つまり、サーバ側で削除してしまうと、削除前のファイルはどこにも残らないことになる。これには注意した方がよい。
同じファイル名、中身が同じでタイムスタンプだけ異なるとどうなるか?
touch somefile
sudo -u apache php /usr/share/owncloud/occ file:scan username
としてみると、同期は行われる。ということは、何の変更も無い状態でバックアップし、内容が同じであっても無駄な同期が行われてしまうということだ。
さらに、ファイル名を変更するとどうなるか?
mv foofile barfile
sudo -u apache php /usr/share/owncloud/occ file:scan username
これでも再度ダウンロードされてしまう。異なるファイルと認識されてしまうようだ。つまり、以前のものが消され、新たなものが出現したことになる。
では、バックアップの方策としては?
logrotate等を行って履歴を残すのではなく、バックアップは単一で良いものとする。つまり、毎日定時にサーバ内でバックアップを同じ名前で作成する。ただし、以前と全く同じ内容であれば、ownCloud管理のファイルを上書きすることはしない。単純にバックアップは行わない。
ということで以下になる。
- あるフォルダやデータベースを一時領域にバックアップする。
- それが既存のownCloud管理のバックアップと同一であれば、一時領域のファイルを消す。
- 同一でなければ、ownCloud管理のバックアップに上書きする。
ディスカッション
コメント一覧
まだ、コメントがありません