CUI環境のDebian 64bit版でDropboxを使う

2015/03/18[公開] 2019/12/08[最終更新]

(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

dropbox4

 こんな感じで延々とhttps://www.dropbox.com/~~にアクセスしろと繰り返します。デスクトップ環境があればここでブラウザが開いてログインできます。ない場合は、このアドレス部分をコピーして別なPCでこのリンクを開いてログインします。この画面は出したままにするのを忘れずに。

 dropbox6

 別な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
最新の状態

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です