Raspberry Piでcronサーバを構築
概要
昔購入した「Raspberry Pi 3 Model B v1.2」をcronサーバにした
様々なサービスがあるが、おそらく最安値で運用できるcronサーバはラズパイに違いない
このサイトによれば、電気代は38~243円/月らしい。やっすい
WebARENA Indigoは349円/月なので、100円/月以上は安くなりそう
ホスティングサーバにするにはセキュリティ、運用面の不安が残ってしまうが、cronサーバなら何も問題はないだろう。IFTTTのWebHooksやGASと連携すれば、十分色々な使い方ができると思う
プログラム
下記はIOSTという仮想通貨が10円まであがったときに通知をする想定のプログラムである。ちなみにIOSTは2022年1月現在2~3円の仮想通貨である
最終的にはAlexaやスマートフォン通知、メール等様々な方法で通知できると安心だろう
const fetch = require('cross-fetch')
const endpoint = 'https://coincheck.com/api/rate/iost_jpy'
const main = () =>
{
fetch(`${endpoint}`).then(res => {
if (res.ok) {
return res.text()
}
})
.then(result => {
const rate = Number(JSON.parse(result).rate)
if(rate >= 10) {
console.log("IOSTが10円以上になりました")
// TODO:Alexaとかスマホに通知を出す処理
}
})
.catch(err => console.error(err))
}
main()
ラズパイのセットアップ
まずはRaspberry Pi Imagerをインストールする
今回はサーバなので、Operating SystemはRaspberry Pi OS (other)のRaspberry Pi OS Lite (32-bit)を設定する
Ctrl + Shift + Xを押下すると下記のような画面が表示される。SSH、Wifi、Local、Timezone、キーボードレイアウトはここで設定しておくと良い
SDカードに書き込みを行ったら、SDカードをラズパイに指して、起動する
ユーザ名:pi
パスワード:raspberry
ログインしたら、ip addr
でIPアドレスの確認を行い、SSH接続に切り替える
cronの設定
最初のプログラムをホームディレクトリに配置して、node.jsをいれる
$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install postfix
$ sudo apt install npm
$ sudo apt install nodejs
$ cd
$ sudo npm i cross-fetch
$ crontab -e
$ service cron start
今回は毎分実行にする
* * * * * /usr/bin/node ~/index.js
終わりに
cronサーバを問題なく構築完了できた
今後、通知等を実装していきます
Discussion