💹

Raspberry Piでcronサーバを構築

2022/01/27に公開

概要

昔購入した「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