ぺんぎんさんのおうち

日本語勉強中のドイツ産ペンギンがいろんなことを書く

DropboxをCUIで動かす[VPS-CentOS7]

学祭用のサイトをVPSで公開しようと試みたけど, ファイル管理をDropboxでやってたのでCUIだけで使えるように頑張った.

それまではGit経由してVPSにファイル移してたけどスマートじゃないのでやめた.

 

まずDropboxを公式からダウンロード. wget使うのでなければ適宜インストール

$ sudo yum -y install wget

$ wget https://www.dropbox.com/download?plat=lnx.x86_64 -O dropbox.tar

 

ダウンロードできたら解凍

fileコマンドで確かめるとgzip形式って出るけどtarコマンドで解凍できる

$ tar -xvf dropbox.tar

 

解凍すると同じ階層に .dropbox-dist/ が展開されるので初期設定(Dropboxアカウントとリンクするため)

$ .dropbox-dist/dropboxd

で起動.

そしたら "http://www.dropbox.com/cli_link_nonce?nonce=" で始まるURLにアクセスしてデバイス(CentOS)をリンクが云々言われるのでコピペ(ホスト側のブラウザで大丈夫)

 

Dropboxのページが開かれて, リンクしますか?的なことを聞かれるのでリンクするを選択して終了.

 

CentOSの方では .dropbox-dist/dropboxd が動いてるはずなので, 一旦Ctrl+c でプロセス終了. リンク成功後同期が始まるので, もしかしたら少しの間放置したほうがいいかもしれない. 

lsでディレクトリ内にDropbox/ があれば成功.

これでVPS先ともDropboxでファイル共有ができるようになる.

 

同期の設定

このままだとDropbox内にフォルダ作ったりファイル置いたりしても同期されない(ホスト/ゲスト共に)ので, バックグランドでDropboxプロセスを動かす必要がある.

$ .dropbox-dist/dropboxd &

単純に & 付加するだけでもいいが, どうせならデーモンとしてサーバー起動(再起動)時に動くようにしたい.

サーバーを起動するたびにコマンド打つのもいいが, 忘れると困るので自動化しよう.

 

起動用のserviceファイルを作成

$ sudo $好みのエディター /usr/lib/systemd/system/dropbox.service

dropbox.serviceファイルを作成編集.

中身はこんな感じ

[Unit]

Description=Dropbox service # 多分なんでもいい 

[Service]

ExecStart=/home/user/.dropbox-dist/dropboxd # .dropbox-dist/dropboxd のパス

User=username #適宜変更

[Install]

WantedBy=multi-user.target

ファイル中のコメント(#以降)は消しておいてください

Serviceが一番重要なので間違えないようにしたい

uWSGI使った時もそうだったけど, デーモンとして動かす(?)サービスファイルもよくわかっていないのでサーバー周りの知見が欲しい.

 

サービスファイルをsystemdが認識できるようにする

さっき作成した dropbox.serviceを起動時にsystemdが動かしてくれるように設定.

$ sudo systemctl enable dropbox

dropbox.service 

赤字の部分が同じであればいいので, hoge.serviceとかでもいい(わかるなら).

 

動作確認

OSを再起動してから, ちゃんとDropboxが動いているか確認.

$ ps -ef | grep dropbox

オプションなしの psコマンドではヒットしないので注意.

$ .dropbox-dist/dropboxd &

で動かしてる場合はちゃんとヒットする.

 

 

 

サーバーに強くなりたい

せっかくなのでVPSで色々試してガンガン壊していきたい

[参考]

[CentOS 7] Dropbox を OS 起動時に自動起動させる設定方法 | 僕とガジェット

[CentOS 7] Dropbox を CLI だけで使用するためのインストールと設定方法 | 僕とガジェット