VyOSに定期的にお仕事させてみた

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

こんにちは。ばっしーです。

小学二年の娘にプログラミングの勉強をさせてみようかといろいろ調べて本を買ってみました。
ところが、小学校低学年生には少し難しいんですね。そのため、少し資料を継ぎ足してみたら、それを使って娘の友達に@「プログラミング講習会」をすることになってしまし、二回も開催してしまいました。

いわゆるビジュアルプログラミングのツールとしては、世界的に有名はScratchがあると思いますが、今回用いたものはMOON BLOCKという国産のものです。どうして世界標準ではなく、MOON BLOCKを選択したのかは、こちらの記事に共感したからです。

「小学生でもできる」とかよく使われる言葉ですが、小学生も1年生から6年生まで様々ですし、loopやifの概念をストレートに受け入れられない場合には進めるのが難しいと思ったためです。

結果的には、「なにかを理解する」という過程をほぼ全部すっ飛ばして、自分が選んだキャラを自分が好きなように動かして、自分のルールで世界を作ることに没頭してもらうことができたので、第一弾としてはそれでよかったのかなぁ、と思います。

それにしてもこのMOON BLOCK、JavaScriptのソースコードも見られるし、テレパシーという名前で通信機能も実装してるので、PCとスマホやタブレットを使って、大人も工作感覚で楽しめそうです。IoT的なマイコンデバイスとも接続できたら楽しそうですが、私自身JavaScriptがそれほど得意ではないので、その関連で記事を書くのはまだ早いようです。

と、いつも通り長い前置きになりましたが、VyOSに定期処理を実施させたいと思います。

タスクスケジューラ?cron?

VyOSはDebian系のLinuxのため、普通にcron使えばいいじゃん、と思っていたこともありました。

ところが、VyOSでなぜかcronがうまく動作してくれない場合があるんです。そもそもcrondがインストールされていなかったりすることもあります。もちろんインストールして事なきを得たこともあるのですが、そもそもVyOSはDebianではなくVyOSなわけで、実はVyOSはタスクスケジューラという機能を持っているのです。

タスクスケジューラ – VyOS jp

記述方法

記述自体はとても簡単で、まずは「TEST」という仮の名前のタスクを指定して、実行内容とタイミングを指定しするだけです。

set system task-schedule task TEST executable path /config/scripts/test.sh
set system task-schedule task TEST interval 5m

実行タイミングは、「interval」で実行間隔を指定するか、Linuxのcronと同じ形式で記述することができます。

注意点

注意点が二点あります。
・実行するスクリプトは「/config/scripts/」配下でなければならない
・マニュアルに記載のある「cron-spec」は誤記で正しくは「crontab-spec」と記述する

たとえば、以下のように記載することで、毎日AM3時に再起動させることができます。

conf
sudo vi /config/scripts/reboot.sh
sudo chmod 755 /config/scripts/reboot.sh
set system task-schedule task REBOOT executable path /config/scripts/reboot.sh
set system task-schedule task REBOOT crontab-spec "0 3 * * *"
commit
save
exit

・reboot.shの中身は以下一行です

/sbin/reboot

以上、簡単ですね。

ばっしーでした!

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す