ご家庭で常時動いているサーバーの情報をどのように通知していますか? メールや専用のミドルウエアを利用して通知している方も多いかと思いますが、メールサーバーやミドルウェアなどの構築となると少しハードルが高くなってしまいます。
今回はPushbulletの紹介と併せて、UbuntuでPushbullet利用してお手軽にサーバーの情報を通知してみます。
Pushbulletとは?
Pushbulletはサイトの説明にあるように、スマートフォンやタブレット、PCなどのデバイス間を接続するサービスで、スマートフォンやタブレットからの通知をデスクトップへ、またその逆へとデバイス間の通知を共有できるサービスです(図1)。
対象となるデバイスは、AndroidやiPhoneといったスマートフォンをはじめとし、ChromeやFirefox、SafariやOperaなどのブラウザー拡張機能、WindowsやMax OS X上でのアプリケーションでも提供されています。
Pushbulletで共有できるデータは以下になります。
注意として、通知したデータはPushbulletのサーバーに保存され、通知先のデバイスから参照する形となります。この参照先はURLを知っている場合は誰でもアクセス可能であるため、不要な情報は通知しなうほうが良いでしょう。
Pushbulletの導入
Androidへのインストール
まずスマートフォンにPushbulletを導入してみましょう。ここではAndroidへのインストールを例としますが、iPhoneでも容易に導入できるでしょう。
- Google PlayのPushbulletページから[インストール]を選択し、導入したいAndroidデバイスにインストールします。
- インストールされたPushbulletを起動し、GoogleアカウントもしくはFacebookアカウントでログインします[1]。
- 通知設定でPushbulletを有効にします[2]。
これでスマートフォン側の設定は終了です。注意事項として、インストール直後のPushbulletの設定はスマートフォンで発生したすべての通知を共有しようとします。このため、Pushbulletの設定画面から[有効にするアプリを選択]をタップした後、[すべてを無効]を選択し、通知を最小限に抑えておくことをお勧めします(図2)。
ブラウザへの導入
ブラウザ側の導入も簡単です。ここではChromiumを例としますが、必要に応じてお好みのブラウザに導入して下さい。
- ChromeウェブストアのPushbulletのページで[Chromeに追加]をクリックしてインストールします。
- Chromeのポップアップで“クリックしてサインイン”と出ますので、クリックしGoogleアカウントもしくはFacebookアカウントでログインします。
使い方
共有したいテキストやサイトなどがある場合、Androidの場合は共有オプションからPushbulletを選択すれば、Pushbulletの送信画面になります。ここで通知先に登録した端末、もしくはすべての端末を設定し、必要に応じてタイトルやメッセージなどを記入したうえで、右上の送信マークをタップすれば通知先に情報を通知します(図3)。
ブラウザから共有する場合は、Pushbulletをインストールしたブラウザ上にPushBulletのボタンがありますので、このボタンをクリックした画面でメモ、リンク、ファイルのいずれかの形式と送信先を選択し、[プッシュ]をクリックすると通知先に通知することができます(図4)。
Ubuntu DesktopでのPushbullet環境
PushbulletはUbuntu Desktop向けに単独で動作するアプリケーションとして「Pushbullet indicator」が用意されています。ブラウザでなく、アプリケーションで通知を受信したい方はこちらで利用してみるのも良いでしょう。
以下のコマンドでpushbullet-indicatorとNautilusの拡張であるnautilus-pushbulletパッケージをインストールします。
インストールが完了したら一度ログアウトしてセッションを再起動します。再度ログインすると通知エリアにPushbulletのアイコンが表示されます。pushbullet-indicatorの利用方法は通知エリアにあるPushbulletアイコンをクリックして[send push]を選択し、送信したい端末を選択して[OK]を押すと通知を送信することができます(図5)。
また、ファイルを通知して共有する場合は、Nautilusから対象のファイルを右クリックし[Pushbullet]-[Send to...]を選択すると通知先を指定する画面が出ますので、通知先を選んで[OK]をクリックするとファイルを共有することができます(図6、7)。
CUI環境からPushbulletを利用する
Ubuntu ServerなどのCUI環境向けにはPushbulletから提供される公式なアプリケーションはありません。しかし、Pushbulletが提供するアクセストークンを利用することでPushbulletに通知することができます。アクセストークンはアカウント設定ページの“Access Token”欄にある文字列になります。あとで利用しますので事前に控えておきましょう。
PushbulletはJSONを利用したHTTPを利用して端末間の通知を実現しています。それでは、コマンドラインからHTTPを送信できるcurlをインストールし以下のコマンドを実行してみましょう。アクセストークンは先ほど控えたものを利用します[3]。
実行すると、すべてのPushbullet環境に通知が表示されます。
このような形でCUI環境でもPushbulletを利用して通知ができますが、長いコマンドラインを毎回入力するのも大変なので、BashインターフェースでPushbulletを簡単に利用できるpushbullet-bashを導入します。pushbullet-bashはGitHub上にあるためgitをインストールし、pushbullet-bashをホームディレクトリ直下にcloneします[4]。
pushbullet-bashを導入した後、アクセストークンを~/.config/pushbulletに記載します。
これでpushbullet-bashが利用できるようになりましたので、以下のコマンドを入力してみましょう。
curlで行った時と同じように通知が行われましたが、より簡単に通知できたかと思います。pushbullet-bashの構文はpushbullet <action> <device> <type> <data>
の形式で、actionはpushbulletへの制御、deviceは対象のデバイス、typeは送信種別、dataは送信データを指定します。例えばactionに“list”を指定すると通知の宛先として利用可能なデバイスの一覧を表示します。
より詳しく知りたい場合はpushbullet --help
で確認すると良いでしょう。
筆者の環境では、“/data*”でマウントしているディスク容量を1日1回チェックし、その結果をPushbullet経由でAndroid端末に通知したかったため、以下のスクリプトを作成しcronで1日1回実行するようにしています。結果が複数行に渡る場合はxargsのオプションでデリミタを改行以外(下記の場合は-0(null))を指定しておくと良いでしょう。
上記の処理がcronによって実行されると、以下のようにPushbulletから通知されます(図8)。確認した後は不要になるため、問題がなければ削除しています。
このような感じで、日々情報をチェックしたいけどチェックを行ったら不要になる情報などはpushbulletに置き換えてみると良いかもしれません。