学祭用のサイトをVPSで公開しようと試みたけど, ファイル管理をDropboxでやってたのでCUIだけで使えるように頑張った.
それまではGit経由してVPSにファイル移してたけどスマートじゃないのでやめた.
まずDropboxを公式からダウンロード. 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 でプロセス終了. リンク成功後同期が始まるので, もしかしたら少しの間放置したほうがいいかもしれない.
これで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コマンドではヒットしないので注意.
$ .dropbox-dist/dropboxd &
で動かしてる場合はちゃんとヒットする.
サーバーに強くなりたい
せっかくなのでVPSで色々試してガンガン壊していきたい
[参考]