先月まで遊んでいたことの小まとめ。
とりあえず、node.jsでローカルのコマンド(スクリプト)を実行する。
目的: port 2100 で fetchmailをできるだけ簡単に動かすこと。
// checkMail.js
// check mail
// sync
const execSync = require('child_process').execSync;
// web
const http = require('http');
const port = 2100;
//var fs = require('fs');
var server = http.createServer(
(request,response)=>{
try {
result = execSync('/usr/bin/fetchmail').toString();
} catch (err) {
result = err.stdout;
}
response.setHeader('Content-Type', 'text/html');
response.write('<html>');
response.write('<head>');
// response.write(' <script type="text/javascript" language="javascript">setTimeout("location.reload()",5000);</script>');
response.write('<meta charset="UTF-8" />');
response.write('</head>');
response.write('<body><h1>Mail checked</h1>');
response.write(result);
response.write('</body></html>');
response.end();
// console.log(result);
}
);
server.listen(port);
スタートは
$ forever start checkMail.js
動いているnode.jsの一覧は
$ forever list
終了は
$ forever stop checkMail.js
これで次のようにアクセスすれば、
http://(local ip):2100
fetchmailが動き、ブラウザに結果が表示される。
先月にやっていたことのまとめだけ。
http serverを動かす必要もなく、nginxが動いていても同居でき、お手軽ですね。
もう少し、
・構成的にして、
・セキュアにして、
・外向けにportを開いて、
・IFTTTのmaker channelでアクセスすれば、
Google Homeから音声でサーバのコントロールができる。