remote-pc」カテゴリーアーカイブ

LINE通知の直接トリガーとIFTTT経由のトリガーについて(その2)

自宅PCやサーバのHDD容量を監視して、逼迫してきたら、LINE通知に24H自動通知しています。

処理の流れとしては、

  • WIndowsタスクで一定期間で監視スクリプトを実行
    • 監視スクリプトで要通知となればLINE通知にPOSTする
    • そうでなければなにもしない(スルー)

これを24時間365日行っています。

ここでは、上記の「LINE通知にPOSTする」部分について、その方法と注意点について紹介しようと思います。

「 WIndowsタスクで一定期間で監視スクリプトを実行」部分については、本ブログの関連ページを参照してください。

かなり説明を端折ってますので、初心者の方はネットでいろいろ調べてみてください。

紹介内容とポイント

  • ①LINE通知への通知方法。少なくとも2種類ある。それぞれ長所短所があるので用途により使い分けるとよい
  • ②LINE通知に直接通知を投げる
  • ③LINE通知にIFTTT経由で通知を投げる
  • ④まとめ

①②については、「LINE通知の直接トリガーとIFTTT経由のトリガーについて」を参照してください。

③LINE通知にIFTTT経由で通知を投げる

監視対象機器(ここでは自宅PCとします)から「IFTTT」サービス経由で「LINE Notify」(LINE通知)サービスにアクセスします。やり方は、ひとことでいうと、IFTTTサービスに登録してMyAppletを作成するだけです。それだけで普段使っているLINEに通知が来ます。

たとえば、こんな感じです。

clip-20191022112528.jpg
※背景画像は東京市ヶ谷にあるポケストップ

ひとつ目の通知が直接通知。二つ目の通知はIFTTT経由通知。同時刻にPOSTしていますが、到着に28分間のタイムラグがありました。IFTTT経由通知の場合は処理が遅いのではなく、ある時点でまとめて処理しているだと推察します。

powershellのコード例

以下PowerShellのコード例を示します。ここでは、LINE通知をする監視対象機器を自宅PC(Windows)としているのと、監視処理を同じくPowershellで書いてWindowsタスクから起動しています。

MacOSやLINUXサーバの場合は、「curl」コマンド等を使って同様に実装可能と思います。

IFTTT_trig.ps1

Add-Type -AssemblyName System.Web

Set-Variable -Name 'TOKEN_IFTTT' -Value <IFTTTのトークン文字列>
echo ("※IFTTTへMAKERイベント発火 at " + $Now)

$oXmlHttp = New-Object -Com Msxml2.XMLHTTP.3.0
$URL = "https://maker.ifttt.com/trigger/test/with/key/$TOKEN_IFTTT"

#コマンドライン引数(パラメータ)の取得
If ($Args.Length -eq 1){
    $a1 = [SYstem.Web.HttpUtility]::UrlEncode($Args[0])
    $URL = $URL + "?value1=" + $a1
}else{
    echo "Error:引数が多すぎます"
    exit
}

$oXmlHttp.Open("GET", $URL, $false)
$oXmlHttp.Send()
If ($oXmlHttp.Status -eq 200){
    echo [SYstem.Web.HttpUtility]::UrlDecode($URL)
}Else{
    echo "Error returnCode:" + $oXmlHttp.Status
}

※ここではIFTTTのMyAppletに設定するトリガーコマンドを「test」としています。

下記コマンドをWindowsのコマンドプロンプトで実行します

IFTTT_trig.ps1 "ディスク逼迫 at MyPC(残量 649)"

※通知内容の変更を容易にするため、上記スクリプトに引数をひとつ渡すようにしています。

※24H監視する場合はWindowsタスクへの登録が必要です。

④まとめ

自宅PCやサーバのHDD容量を監視して、逼迫してきたら、LINE通知に24H自動通知しています。

ここでは、「LINE通知に24H自動通知」について、その方法と注意点について紹介しました。

関連する記事・ページ

LINE通知の直接トリガーとIFTTT経由のトリガーについて
LINE通知の直接トリガーとIFTTT経由のトリガーについて(その2)
自宅PCをスマホでリモート管理(タスク管理編)
PCをリモート管理する1手法
【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例
【コードサンプル】ネット転送量モニタ

お世話になったリンク

LINE Notifyでたのでちょっと試してみる。ついでにGithub Enterpriseのwebhookを通知するやつを作ったぞ!!

※東京市ヶ谷のポケストップ「ビーナス」
clip-20191023073518.jpg

以上です。

LINE通知の直接トリガーとIFTTT経由のトリガーについて

自宅PCやサーバのHDD容量を監視して、逼迫してきたら、LINE通知に24H自動通知しています。

処理の流れとしては、

  • WIndowsタスクで一定期間で監視スクリプトを実行
    • 監視スクリプトで要通知となればLINE通知にPOSTする
    • そうでなければなにもしない(スルー)

これを24時間365日行っています。

ここでは、上記の「LINE通知にPOSTする」部分について、その方法と注意点について紹介しようと思います。

「 WIndowsタスクで一定期間で監視スクリプトを実行」部分については、本ブログの関連ページを参照してください。

かなり説明を端折ってますので、初心者の方はネットでいろいろ調べてみてください。

紹介内容とポイント

  • ①LINE通知への通知方法。少なくとも2種類ある。それぞれ長所短所があるので用途により使い分けるとよい
  • ②LINE通知に直接通知を投げる
  • ③LINE通知にIFTTT経由で通知を投げる
  • ④まとめ

③④については、「LINE通知の直接トリガーとIFTTT経由のトリガーについて(その2)」を参照してください。

①LINE通知への通知方法

LINE通知に至る方法には、他にもいろいろ紹介されているかも知れませんし、自分で独自にそうしたサービスを作ることも可能ですが、ここでは比較的簡単に導入しやすいと思われる方法を紹介します。

  • 監視対象機器からLINE通知に、直接、通知を投げる
  • 監視対象機器からLINE通知に、IFTTT経由で、通知を投げる

特に監視対象機器などなくて、単にTwitter等のネットサービスからLINE通知に通知したい場合は、IFTTT経由の方法を参照してください(後述するURLにPOSTするスクリプトも不要です)。

※ここの紹介では方法の比較がひとつのポイントですので、一方の方法のみであれば他ブログのページの方が導入しやすいかも知れません。

直接通知の特長

  • ほぼリアルタイムで通知が来る。他サービスを経由しないので、ほぼリアルタイムに通知できます。応用例を思いつきませんが、監視対象からの通知にすばやく反応したい場合有用かもしれません。
  • LINE通知専用のアクセストークンを取得して使用しないと通知できないので、安全

IFTTT経由通知の特長

  • 特別な知識やノウハウが必要ありません。監視対象機器からの通知を処理する場合でも、リアルタイム性を求めないならこちらで十分だと思われます。ただし結構タイムラグがあります(下記例の場合28分)。
  • LINE通知のアクセストークンを取得する必要がありません。ただしIFTTTのトークンは必要です。

②LINE通知に直接通知を投げる

監視対象機器(ここでは自宅PCとします)から「LINE Notify」(LINE通知)サービスにアクセスします。やり方は、ひとことでいうと、LINE通知専用アクセストークンを入手して、それを使ってURLにPOSTするだけです。それだけで普段使っているLINEに通知が来ます。

たとえば、こんな感じです。

clip-20191022112528.jpg
※背景画像は東京市ヶ谷にあるポケストップ

ひとつ目の通知が直接通知。二つ目の通知はIFTTT経由通知。同時刻にPOSTしていますが、到着に28分間のタイムラグがありました。IFTTT経由通知の場合は処理が遅いのではなく、ある時点でまとめて処理しているだと推察します。

powershellのコード例

以下PowerShellのコード例を示します。ここでは、LINE通知をする監視対象機器を自宅PC(Windows)としているのと、監視処理を同じくPowershellで書いてWindowsタスクから起動しています。

MacOSやLINUXサーバの場合は、「curl」コマンド等を使って同様に実装可能と思います。

LINE_trig.ps1

Add-Type -AssemblyName System.Web

Set-Variable -Name 'TOKEN_LINE' -Value <アクセストークンの文字列>
echo ("※LINEへ通知イベント発火 at " + $Now)

$oXmlHttp = New-Object -Com Msxml2.XMLHTTP.3.0
$URL = "https://notify-api.line.me/api/notify"

#コマンドライン引数(パラメータ)の取得
If ($Args.Length -eq 1){
    $a1 = [SYstem.Web.HttpUtility]::UrlEncode($Args[0])
    $a1 = "message=" + $a1
}else{
    echo "Error:引数が多すぎます"
    exit
}

$oXmlHttp.Open("POST", $URL, $false)
$oXmlHttp.setRequestHeader("Authorization","Bearer $TOKEN_LINE")
$oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oXmlHttp.Send($a1)
If ($oXmlHttp.Status -eq 200){
    echo "正常に送信できました"
    echo [SYstem.Web.HttpUtility]::UrlDecode($URL) 
}Else{
    $responseText = $oXmlHttp.responseText()
    echo "Error returnCode: $responseText"
}

下記コマンドをWindowsのコマンドプロンプトで実行します

LINE_trig.ps1 "ディスク逼迫 at MyPC(残量 649)"

※通知内容の変更を容易にするため、上記スクリプトに引数をひとつ渡すようにしています。

※24H監視する場合はWindowsタスクへの登録が必要です。

R.参考

関連する記事・ページ

LINE通知の直接トリガーとIFTTT経由のトリガーについて
LINE通知の直接トリガーとIFTTT経由のトリガーについて(その2)
自宅PCをスマホでリモート管理(タスク管理編)
PCをリモート管理する1手法
【コードサンプル】Windowsタスクへの登録例
【コードサンプル】heartbeat.ps1 – 心音確認 PowerShell Script
【コードサンプル】1時間タスクのScript例
【コードサンプル】24時間タスクのScript例
【コードサンプル】hbJob.bat – Windows Bat Script
【コードサンプル】プロセスモニタのScript例
【コードサンプル】IFTTT経由でLINE通知するScript例
【コードサンプル】ネット転送量モニタ

お世話になったリンク

LINE Notifyでたのでちょっと試してみる。ついでにGithub Enterpriseのwebhookを通知するやつを作ったぞ!!

※東京市ヶ谷のポケストップ「ビーナス」
clip-20191023073518.jpg

以上です。

Dropboxのちょっと変わった使い方(メール取得)

HDDドライブの使用量をモニタする方法を例として、Dropboxを利用したリモートPCの操作について示しましたが、ここでは、リモートPCでメールサーバ(受信)にアクセスしてタイトルをリストアップしておき、(手元にある)ローカルPC(またはモバイルデバイス)でその内容を確認する方法について具体例を示します。

準備するものは3つになります。

  1. Dropbox内のファイル群
  2. メール取得スクリプト(PHP)。PHP環境のインストールがインストールされていることを前提としている
  3. タスク登録

メールタイトル等を取得するPHPスクリプト例

----
/* subchk.php : a PHP script for checking subject from an email account
PHPの版数は5.2.5以上を想定
*/
//------------------------------------------------------------------------------
// 初期設定
 mb_internal_encoding("SJIS");
//------------------------------------------------------------------------------
/* POP3 サーバと接続 */
 $mbox = @imap_open("{"."POP3サーバアドレス".":110/pop3}INBOX","POP3アカウント名","POP3パスワード");

 if ($mbox) {
 /* 新着確認 */
 $mboxes = imap_check($mbox);
 $mail_cnt = $mboxes->Nmsgs;
 echo "$mail_cnt 件あります\n";
 /* 1通以上あれば */
 if ($mail_cnt > 0){
   /* 各メールのリストを作成 */
   for ($i = $mail_cnt; $i > 0; $i--){ echo "$i]";
    $head = imap_header($mbox, $i);
    echo mb_decode_mimeheader($head->subject)."\n";
    echo $head->date."\n";
    echo mb_decode_mimeheader($head->fromaddress)."\n\n";
   }
 }
 imap_close($mbox); exit(0);
 }else{ /* 認証の失敗 */
  print("Unable to validate username/password.\n"); exit(1); } ?>
----

メール取得スクリプト(PHP)の更新と保存場所

上記スクリプトをエディタに取り込んでPOP3サーバアドレス、POP3アカウント名、POP3パスワードを自分のメール環境に合わせて変更します。

変更後のスクリプトファイルを例えばsubchk.phpというファイル名にして、Dropbox外の適当な場所に保存します。処理内容(スクリプトコード)を固定して使うこと、アカウント名やパスワードを入れていることからDropboxフォルダの外に保存すべきと思います。ここでは、Cドライブ直下に”Bin”というフォルダを作成してその下に保存しています。

PHPはリモートPCのみにインストールすればよいと思います。ここではCドライブの直下に”Php”というフォルダを作成してそこにインストールしました。環境変数(PATH)は設定してもしなくてもよいです。

Dropbox内のファイル群の構成例

dropboxCmdViaDropbox

管理しやすくするため、リモート操作専用のフォルダ(例えば”CmdViaDropbox”)を作成しDropbox直下に置き、そこに

  • Batchファイル(bat\subchk.bat)。Batchファイルはそうたびたび更新することがないでしょうから、”bat”フォルダに集めておく。iPad等からの操作時にlockファイルを削除することがありますが、間違えてBatchファイルを消さないようにする対策にもなるからです
  • 結果出力ファイル(rep_subchk.txt)
  • Lockファイル(subchk.lck)

等を入れておくきます

Batchフォルダ内のファイル構成例

dropbox_CmdViaDropbox_bat

Windowsタスクから直接起動されるBatchファイル(Main.bat)の作成例

----
@echo off
REM call bat\RemotePC.bat
call bat\Subchk.bat
REM call bat\Subedit.bat
REM pause
exit
----

メール取得Batchファイル(Subchk.bat)の作成例

----
@echo off
if exist Subchk.lck goto END
echo "CmdViaDropbox" > Subchk.lck
cd c:\bin
C:\php\php.exe -f subchk.php > "C:\Documents and Settings\user\My Documents\Dropbox\CmdViaDropbox\rep_subchk.txt"
REM pause
REM exit
:END
----

これはBatchファイル(MAIN)から起動されるメール取得Batchファイル(Subchk.bat)の作成例。

起動方法と結果例

手元のデバイス(ローカルPCやiPad、iPhoneなど)のDropboxフォルダを開き(iPadならDropboxアプリを起動)、CmdViaDropbox\subchk.lck というLockファイルを削除します(iPadのDropboxはファイル編集はできないがファイル削除はできる)。

するとLockファイル削除からタスクの設定時間(ここでは5分毎にMain.batが処理されるようタスク登録されたと仮定)が経過したところで、Main.batを経由してSubchk.batが呼ばれます。

Lockファイルが存在しないのでPHPスクリプトのコードが処理されてメールサーバ(POP3)から抽出したタイトルリストが結果ファイル(rep_subchk.txt)に出力されます。

タイトルリストの数にもよりますが1分から長くて数分で処理が完了するでしょうから、上の仮定でいけば6分から8分後には最新のタイトルリストが手元のデバイスで参照できるようになります。

なお、Dropboxの同期時間は0として計算していることに注意してください。回線が細いと当然無視できない時間がかかるでしょう。

以下は結果ファイルの例

----
65 件あります
65]グーグル参入で活気づく「クラウドストレージ」市場
Tue, 08 May 2012 15:36:36 +0900
ccc@dddddd.com
64]4つの実践演習でチームをまとめるスキルを体得●【リーダー養成プログラム】
Tue, 08 May 2012 15:32:02 +0900
ccc@dddddd.com
63]月間トップはスルガ銀と「SEは正しい」/ITproスマホサイト刷新
Tue, 08 May 2012 15:24:02 +0900
ccc@dddddd.com
----

応用

PhpスクリプトやWindowsアプリを用意してそれらを呼び出すBatchファイルをMain.batに追加するとリモートPCにやらせたいことを拡張できます。上の例では(ここではコメント(REM)になっていますが)

  • リモートPC側からVNCを呼び出す(RemotePC.bat)。VNCアプリと組み合わせて処理する
  • メールの本文をリストアップする(subedit.bat)。Phpスクリプトと組み合わせて処理する

などが実装できます。

関連する記事

Dropboxのちょっと変わった使い方(基本編)
Dropboxのちょっと変わった使い方(メール取得)

お世話になったリンク

Dropbox

以上です

Dropboxのちょっと変わった使い方(基本編)

#本内容に関連した新しい記事を投稿しました。
【ブログ補足】自宅PCをスマホでリモート管理(タスク管理編)

DropboxとはWindowsのファイルやフォルダでありながら、他デバイス(PCやタブレット、スマホなど)とリアルタイム同期できる高機能ファイルシステムのこと、です。

これは大変便利で、例えばiCloudを使ったiOSデバイスのフォトストリームのように、あるデバイスで作成更新したデータが即座に他のデバイスで使えるようになります。FTPなどの転送ソフトを利用するなどの手間が一切なく、ネット共有フォルダ+αのような便利さがあります。

普通の使い方は、自宅(自宅PC)や会社(会社PC)や出先(モバイルデバイス等)で、いつでもどこでも最新の作業状態を(一切の手間なく)手に入れて作業を再開することなどでしょう。
ここでは、Dropboxの最大の特長であるところのリアルタイム更新機能を用いて、ちょっと変わった使い方を提案してみようと思います。

タスク機能と組み合わせてリモートPCを操作する

タスク機能とはWindowsのコントロールパネルにある「タスク」のことです。Linux系ではcronと書いた方が分かり易いかも知れません。
Dropboxの中にバッチファイルを置いておき、タスクでそのバッチファイルをある決まった時刻に実行するように設定しておけば、自宅や出先や会社などそのPCから遠い場所から、そのデバイス(普通はPC)に何でもさせることができます。
例えば、

  • ハードディスクの使用量をモニタする[Batchファイルをタスクに登録]
  • 再起動させる[Batchファイルをタスクに登録 ]。再起動ではなくシャットダウンも可能だが、その時点でリモート操作は終了してしまう
  • メールのsubjectsを100件リストアップする[Php実行を含むBatchファイルをタスクに登録 ]
  • 自宅のモニタカメラを使う。子供やペットの様子をモニタする[未実装]
  • 自宅のエアコンを帰る30分前にONしておく[未実装]
  • 会社PCをリモート接続する[VNCアプリを含むBatch ファイルをタスクに登録]。通常自宅PCから会社PCへは簡単には接続できませんが、その逆(コールバックというのかな)は可能な場合が多いことを利用します。前に「Emailリモートコマンドが5分で構築できる時代」という記事を書きましたが、Dropboxでさらに容易に利用可能になりました
等が可能になります。

最後にあげたリモート接続は別として、GUIで直接操作するわけではないので、バッチファイルやPHPスクリプト等を作成しなければなりませんが、そこを突破できれば何でもできるようになる。

例えば、1番目の、(リモートPCの)ハードディスクの使用量をモニタする、を実際にやってみましょう

Dropboxさえ使えればリモートPCがぶら下がるネットワークにポートに穴を開けたり特別なサーバを用意したりする必要はありません。ネットワーク管理者に色々聞く必要がありません。対象ドライブ上で(リモートPCで)DIRコマンドした結果をDropbox内に定期的に保存するだけでいいのです。

これは従来やっていたやり方と比べて格段に敷居が低くなったと思います。従来のやり方の例としては、DIRコマンドした結果をEmailで飛ばすなりTweetするなり、情報をどうにかして外部に出す必要があり、これが結構知識と手間がかかりました。

Dropboxを利用する場合準備することは2つ

1つ目はBatchファイルを作成することです。

例えば、

@echo off
d:DIR/W < "C:\Documents and Settings\user\My Documents\Dropbox\DIR_out.txt"

というBATファイルをDIR.batという名前にしてDropboxのフォルダに置きます。

2つ目は、そのBatchファイルをリモートPCにタスク登録すること。リモートPCの「コントロールパネル」「タスク」でそのBATファイルを登録しておきます(毎日1時間おきに実行するなど)

これらが準備できれば、(ローカルPCの)DropboxにあるDIR_out.txtを開けばリモートPCのDドライブの使用量を確認できます。その内容はこの場合1時間毎に更新されますが(上のタスク設定にした場合)、タスクの設定を変えれば「1時間毎」を「5分毎」にすることもできますね。

iphone/ipad/ipod-touchなどのiOSデバイスでもDropboxをインストールして使用することができます。ファイルの更新はできないようですが(有料版はできる?)、ファイル参照、フォルダ作成、ファイル削除が可能です。

これは、どこにいてもリモートPCの状態をモニタできることを意味します。ドライブ容量がパンクする前に
不要ファイルを消すなり移動するなりのアクションが取りやすくなります。

繰り返し処理とイベント処理を使い分ける

DropboxによるリモートPC操作における「繰り返し処理」とは、タスクで設定した時間毎に何度でも繰り返し処理を実行することです。例えば上の例にあった「ハードディスク容量をモニタする」のように、1時間毎にモニタ内容を更新する、などです。

DropboxによるリモートPC操作における「イベント処理」とは、タスクで設定した時間に係わらず、ローカルPCからの操作で1度だけ実行することです。ローカルPCから何か合図をしたらその後一度だけリモートPCで処理を実行する。上の例にあった「メールのSubjectsを100件リストアップする」「エアコンをONにする」「モニタカメラを使い始める」の場合のように、何度も繰り返すより、手元のデバイス(PCやスマホなど)からの操作で1度だけ処理したい場合があります。昔PCに赤外線リモコンをつけてCATVの番組予約をしたことがありますが、そんなことも可能です

こういう使い分けは、Dropboxを利用する場合、どのようにすればいい?

1つの例としては、下記のように、Batchファイル内でlockファイルの有無により処理を分ける方法があります。

@echo off
if exist Dir.lck goto END
echo "CmdViaDropbox" > Dir.lck

d:

DIR/W > "C:\Documents and Settings\user\My Documents\Dropbox\DIR_out.txt"

:END

このBatchファイルでは、「Dir.lck」というlockファイルがあるとメインの処理を飛ばします。lockファイルがないとlockファイルを作成した上でメインの処理を実行します。

こうしておけば、ローカルPCやiPhoneのDropboxフォルダ上でlockファイルが削除されるまで、いくら5分毎にBatchファイルが呼ばれても、メインの処理が実行されないようになります。

実際に使ってみると「イベント処理」の方が有効でした。いくら暇でも1時間や5分毎に更新内容をチェックするような事態はあまりないですね。メールのSubjectsを100件5分毎に取得しても5分前との差異は数件も無いでしょうから。それよりも必要なときにローカルデバイスからlockファイルを削除しさえすれば情報が取得できるのであるから、「イベント処理」で十分なのだと思います。

lockファイルを使う方法はPCだけ使う用途だけで考えるとなにかもったりしている印象ですが、Dropbox内のファイルにフルアクセスできないipad,iphone,ipod-touchのようなモバイルデバイスを使うとき、真価を発揮します。

リモートPCを操作するためのパラメータ

リモートPCで実行させたい処理に引数等のパラメータを渡したい場合があります。例えばメールのSubjectsをデフォルト (なにも指定のないときの意) で100件リストアップする処理の場合に、

  • 100件を50件に変更する
  • 差し出し人を特定のメールアドレスでフィルタする
  • Subjectだけではなく本文もリストする
等、いろいろ考えられます。

[オンとオフ]

上のlockファイルの有無で処理を分けることができるように、モバイルデバイス上のDropboxからでも調整しやすいパラメータです。ファイルの有無やフォルダの有無などいろいろ試すことができそうです。

[文字列]

モバイルデバイス上のDropboxからだと厳しいですが、フォルダが自由に作成できるのでフォルダ名にパラメータを埋め込んでそれをリモートPC側で認識させる方法が考えられるでしょう。

終わりに

iOS系モバイルデバイスのDropboxアプリの仕様が制限されているのは何故でしょうね。ソフトキーボードがあるのですからテキストファイルが編集できてもよい気がするのですが。もしテキストファイルが編集できるようになれば、リモートPCと同じ自由が手に入るでしょう。

関連する記事

Dropboxのちょっと変わった使い方(基本編)
Dropboxのちょっと変わった使い方(メール取得)
【ブログ補足】自宅PCをスマホでリモート管理(タスク管理編)

お世話になったリンク

Dropbox
以上です

Emailリモートコマンドが5分で構築できる時代

Emailリモートコマンドが5分で構築できる時代

昔、Becky2というメールソフトとPHPを組み合わせて、

「EmailによってPCを遠隔操作するシステム」
を構築したけれど、今ではそれが、

Gmail Remote Command(GRC)

を使えば簡単にできてしまうんだね。

本当に便利な時代というか、高度(?)なことが簡単に
実現できる時代になってしまっている。

私の自作システムも似たりよったりだけれど、
GRCで「PCを遠隔操作する」といっても、
WindowsのRemoteDesktopのように
リアルタイムに操作できるわけでもないので、

・PCをシャットダウンする

・PCを起動(WOL)する

・学習リモコンシステムと組み合わせて家電をON/OFFする

など、一発芸的なことしかできない(結果も見えない)。

しかし、この「一発芸」が非常に便利になる場合がある。

私の場合の自作システム構築の目的は、
「携帯電話の能力不足をPCでカバーする」
ことだった。
たとえば、グーグル検索も携帯電話で直接使うと
結果がショボクPCにバックグラウンドで仕事をさせて
その結果のみ携帯電話でみたかった。

今ではスマホがあるしネット環境も昔とは格段に違うので、

「携帯電話の能力不足はスマホで十分にカバーできる」

ので、現在の自作システムは、

「会社PCから自宅LANにコールバックさせる」

ための最初の一歩のところに使っている。

会社PCは比較的Secureな企業LAN内にあり、いくら携帯がスマホになっても、

ネット環境がよくなっても、外部からコマンド起動させることはそう容易でない。

だから、この「一発芸」が非常に便利になるわけだ。

自作システムの場合には、Emailでコマンドを受け付けて実行することに加え、

・コマンドの実行結果をEmailで送付元に返信する
・Security確保のため、コマンドを受け付ける時間幅を1分間、10分間、1時間等に制限する
・Security確保のため、テンポラリなパスコードを導入する

の他、色々な機能を実装したが、

「会社PCから自宅LANにコールバックさせる」

のためには、それらの殆どが不要になってしまった。