(2019/12/8 追記)Debian10(buster)でも設定できるのを確認しました。一部変更があった部分を追記しています。
自宅のDebianサーバーでもDropboxを使いたいと思い、Debian GNU/Linux Wheezy 7.8の64bit版で設定した記録です。家のDebianはデスクトップ環境無しのCUI環境ですが、GUI無しでも大丈夫なようです。Dropboxが使えるようになったら、WordPressのバックアップデータを入れたいという計画なのです。
Dropboxは公式サイトでLinux用のページを用意してくれています。デスクトップ環境があれば簡単にインストールできるようですが、コマンドラインインストールの方法は公式サイトの説明だけではさっぱりわかりません。
いろいろググったり、試行錯誤してウチのDebianにて設定を進めた備忘録です。Dropboxのアカウントは作成済みの前提です。
このページの目次
Dropbox のインストール
Dropboxのサイトからwgetでダウンロードして解凍する。公式サイトの説明通りです。root権限ではなく、メインユーザーの一般権限でコマンドを入れます。
$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
続いて、ユーザーディレクトリに展開された.dropbox-distフォルダの中のdropboxデーモンを起動します。
$ ~/.dropbox-dist/dropboxd
こんな感じで延々とhttps://www.dropbox.com/~~にアクセスしろと繰り返します。デスクトップ環境があればここでブラウザが開いてログインできます。ない場合は、このアドレス部分をコピーして別なPCでこのリンクを開いてログインします。この画面は出したままにするのを忘れずに。
別なPCでログインすると、「このコンピューターはDropboxにリンクされました。ようこそ、」と表示されたら成功です。Ctrl+Cでこの画面から抜けます。
PythonスクリプトでDropboxを管理
Dropboxをコマンドラインで操作できるようにします。Dropboxが用意してくれているpythonスクリプトを使います。まずはスクリプトファイルをダウンロードします。ここからはsuでroot権限になって操作します。
(追記)Debian10(buster)では、 su ではなく su – (ハイフン)でrootにならないとコマンドがエラーになります。
dropbox.pyをダウンロードしてdropboxという名前で保存します。 私は追加のスクリプトファイルを/usr/local/sbin/にdropboxというファイル名にして保存していますが、パスは環境により最適な場所に保存してください。
# wget 'https://www.dropbox.com/download?dl=packages/dropbox.py' -O /usr/local/sbin/dropbox
保存したファイルに所有者の実行権限を与えます。
# chmod u+x /usr/local/sbin/dropbox
dropboxとコマンドを打つと、使えるコマンドが表示されます。
# dropbox Dropbox command-line interface commands: Note: use dropbox help <command> to view usage for a specific command. status get current status of the dropboxd help provide help puburl get public url of a file in your dropbox stop stop dropboxd running return whether dropbox is running start start dropboxd filestatus get current sync status of one or more files ls list directory contents with current sync status autostart automatically start dropbox at login exclude ignores/excludes a directory from syncing lansync enables or disables LAN sync
dropbox status と打つと現在のステータスが確認できます。まだDropboxは動いていないようです。
# dropbox status Dropbox isn't running!
初回インストール
あとはDropboxをスタートさせるだけと思いきや、初回はオプション-i を付ける必要があるようです。
# dropbox start -i
なにやらデーモンをダウンロードするか聞いてくるので「y」を押します。
In order to use Dropbox, you must download the proprietary daemon. [y/n]
先にpython-gpgmeをインストールしておかないとダメと言われた場合はインストールします。私の場合は先にインストールが必要でした。
# apt install python-gpgme
(追記)Debian10(buster)では、python3-gpgをインストールします。
# apt install python3-gpg
一般ユーザーでDropboxを利用する
rootで利用してもいいのですが、ユーザーのホームディレクトリのDropboxフォルダが同期された方が使い勝手が良いと私は思うので、一般ユーザーで利用できる設定で進めます。
ファイルの所有者を利用するユーザーに変更します。ユーザー名を[user-name]としています。
# chown [user-name] /usr/local/sbin/dropbox
一般権限のユーザーに切り替えます。
# su [user-name]
/usr/local/sbin/dropbox start とコマンドを入れてDropboxをスタートさせます。
$ /usr/local/sbin/dropbox start Starting Dropbox...Dropbox isn't running! Done!
/usr/local/sbin/dropbox status でステータスを見ると「最新の状態」になりました。
$ /usr/local/sbin/dropbox status 最新の状態
ユーザーのホームディレクトリにあるDropboxフォルダの中にファイルを置いて、クラウド上で同期されるのを確認できたら成功です。
OS起動時にDropboxをスタートさせるべくCronに登録する
Debianを再起動させると、Dropboxもスタートし直す必要があります。それは面倒なのでCronに登録させておくと便利なようです。Crontabに@rebootでコマンドを入れておくと、cron起動時=OS起動時に実行してくれるそうです。
/etc/crontab ファイルを編集します。
# m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) 30 4 * * * root /usr/local/sbin/fstrim.sh # @reboot [user-name] /usr/local/sbin/dropbox start
最終行に一行追加しました。[user-name]は適切なユーザー名を入れてください。
可能であればOS再起動をして動作確認をしてみます。
もしくは、cronだけ再起動
/etc/init.d/cron restart
再起動後、ステータスが「最新の状態」であればOKです。
$ /usr/local/sbin/dropbox status 最新の状態