はじめに
みなさんおはこんばんちは。Hameeアドカレ13日目です。
結論からはじめにお伝えすると。
「デートの食事」に悩んだ時、グータンヌーボヌーボする。
これをcronから実行できるようにしたという話
もうcron知ってるわ!
今更マサラタウンすぎwww
って方も多いと思いますが!今年業務でもcronに触れる機会はなんどかあり、ちょうど自分でも使ってみたいなと思ったので昔の記事を改造してcronで実行できるようにしました。♻️
前回までのあらすじ
わたくしグータンヌーボヌーボという番組をこよなく愛しておりまして、「いつか番組で登場したお店に行ってたい!!!」という己の願望を叶えるために、TwitterAPIとLINEAPIを使って以下のことを行っていました。
- 事前にLINEbotアカウントを作成&友達追加
- phpファイルをローカル環境で実行
- グータンヌーボ公式ツイッターからAPI経由でお店情報を取得
- 2.で取得したお店情報を1.で作成したLINEBotアカウントを引数にLINEAPIを実行
- LINEBotがお店情報を投稿
課題点
課題点は一つ。phpファイルを自分自身で実行しなければいけないこと。
この1年、自分でこのphpファイルを実行したことは1度もなかったです。
そもそもデートもしなかったし、必要となることなかったし当然だた
ということで定期実行できるように設定してみました。
やったこと
以下のcrontabコマンドを実行し簡単設定して終わり
番組の放送は毎週火曜 深夜0:25~0:55で
Twitterの更新は前後しているので毎週水曜の夜中の0:00に設定
cronの時間設定についてはこちらの方の記事をご参考ください
crontab -e
0 0 * * 3 php /path/workspace/Gutan_Nouveau/Gutan.php
ちゃんと動作するのか気になる・・・!!!
気になるので試しに日曜の17:10に起動するのかデバッグ...
ちなみに5つめの7が日曜にを表しているのですがここは0でも日曜日を表してくれるようです。
10 17 * * 7 php /path/workspace/Gutan_Nouveau/Gutan.php
とはいえ
めちゃめちゃ簡単に定期実行行う事ができたのですが、さすがにこれじゃ、、、と思いcronについて少し調べてみました。
crontabオプション
man crontab でcrontabについて調べてみる。
どうやらオプションは4つしかない。
-u で実行できるユーザーの指定。-l 設定済のcron情報を確認。-r cronの削除。-e cronの設定。
-u Specify the name of the user whose crontab is to be tweaked. If this option
is not given, crontab examines ``your'' crontab, i.e., the crontab of the
person executing the command. Note that su(1) can confuse crontab and that
if you are running inside of su(1) you should always use the -u option for
safety's sake.
-l Display the current crontab on standard output.
-r Remove the current crontab.
-e Edit the current crontab using the editor specified by the VISUAL or EDITOR
environment variables. The specified editor must edit the file in place; any
editor that unlinks the file and recreates it cannot be used. After you exit
from the editor, the modified crontab will be installed automatically.```
気になったところ
そもそも、これディレクトリとか指定しなかったのにどこにできたのかな〜〜
って思ってたらcrontab -eした時に以下のディレクトリ出てた
/tmp/crontab.Bu5SvCojm0" 1L, 72C
でも実際にディレクトリをみてみたら存在していなかった。
んん〜〜〜〜〜と思ってwhichしたらヒットは一件
$which crontab
/usr/bin/crontab
調べたら、これはどうやらcrontabコマンドの本体ファイル
再起動してもcrontab -lで確認したら設定は残っていたのでメモリに保存されている??(詳しい方いたら教えてください。。😭😭😭)
最後に
ただただ、crontab使ってみたって話でした。
補足ですが、 グータンヌーボのTwitterは最近お店情報をTwitterに載せなくなった らしく
デートの時にお店に困ってもグータンヌーボも教えてくれなくなったので詰みです。
定期実行思ったよりも簡単だなって思えたので
今後もいろんな使い方してみたいなって気持ちになりました。☀️☀️☀️
参考記事:【cron】定期的に処理を行う【MacOS】【Linux】
https://qiita.com/syunyo/items/69c3523a8c500b37f33f
各ユーザのcrontabファイルの場所について
https://qiita.com/iganari/items/5a61ec93d989f7c77a2c