crontabコントロールファイルの設定を定期的に変更する ~システム開発研究室 ~


 こんにちは!
 ナビゲータのEVEです。
予感作業.jpg
 今週末予定通りのプログラム修正は完了しました。
①クーロンタブコントロールファイル作成処理 ← 完了
②クーロンタブコントロールファイル実行処理 ← 完了
 ①は、予定通りあまり時間をかけずに完了しました。
 問題は②です。クーロンタブコントロールファイルの作成を①で終えているのですが、その結果が、クーロンタブへ登録できない・・・。

[Prototype EVEでのクーロンタグコントロールファイル実行処理]
 具体的にどのような処理かというと、以下のようなコマンドを発行する処理をバッチプログラムで実行しようというものです。


# crontab crontabContolFile

この1行を実行するプログラムに10時間以上の時間をかけました。そのため、昨日寝たのは、午前様です。実は、このcrontabを実行するのに、10年前の2013年にも苦労しました。10って数字が多いような・・・?

[Prototype EVEのクーロンタブ実行処理]
 Prototype EVEのクーロンタブ実行処理は、以下の様なコマンドで実行しています。

# sudo -u root /usr/bin/crontab crontabContolPath+File crontab

そして、/etc/sudoersファイルも変更しています。

# apache test=(root) NOPASSWD : /usr/bin/crontab

製造当時なんと疑問もなく作っていたのですが、testってなんですかね?この位置になんでtestという文字がくるのかわかりません。
 ということで、以上の構文が何を指しているのか、ChatGPTに聞いてみました。

❶apache
 apache は、通常はWebサーバーなどで使用される特定のユーザーアカウントを指します。Apache HTTPサーバーなどがこのユーザーアカウントを使用することがあります。
❷test
 test は、apache ユーザーに対して特権が与えられる具体的なコマンドを指します。
❸root
 apache ユーザーが root 権限を利用できるようにしています。
❹NOPASSWD
 NOPASSWD は、パスワードの入力なしにsudoコマンドを実行できることを指定しています。
❺/usr/bin/crontab
 /usr/bin/crontabの実行する権限を有していることを指しています。

今となっては、なんでこんな記述をしたのか不明ですが、testというのは一般向けに記事を書いたときに便宜的に書いたのかな?って想像しています。以上の検証作業は、2013年には10日間かけて行い、実装できたそうです。本当に10って数字が多く出てきます・・・。

[デバッカの復活!]
 以上の10年前の検証を踏まえ今回も設定を試みましたが、うまくいきません。これを実証試験を行っている最中に、どこでどんなことが起こっているのか知りたかったため、Prototype EVEのデバッカを復活させました。このデバッカ、Prototype EVEを利用しようと思った主因だったのですが、今までそれがなくてもプログラム修正ができていました。ただ、今回は違います。
 余談ですが、デバッカを復活させるとき動かなかったので、1ステップ1ステップ検証をしたのですが、バグがあったんでよね・・・。本来なら動かないはずなのですが、Prototype EVEでは、現在も問題なく動いています。そこが不思議・・・。

[あとがき]
 以上が先週末、「②クーロンタブコントロールファイル実行処理」を復活させる過程なのですが、以上はまだ道半ばまで達していません。これから、もっと苦労をすることになります。その苦労話の続きは、長くなってしまったので、明日にしましょう。
 では、また!

コメント