cron
私はこのコマンドを実行するように設定しようとしていますmysqlauditgrep
(MySQL 5.6ユーティリティパッケージです)。このmysqlauditgrep
コマンドはbashにあります。
私が実行したいコマンドは次のとおりです。
mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
このコマンドを使用すると、mysqlによって生成された監査ログをグリッド形式で表示できます。 mysqlシェルでは実行されません。
そのため、Cronをインストールし、次のように設定してcrontabを設定しました。
00 11 * * fri root usr/bin/mysqlauditgrep mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
crontabファイルに入った後、/sbin/service crond startを実行しました。
しかし、その行動が起こったかどうかはわかりません。
答え1
crontab 行は次のようになります。
00 11 * * fri /usr/bin/mysqlauditgrep --format=GRID /var/lib/mysql/audit.log
man 5 crontab
crontabファイルの構文を確認するには、入力してください。
答え2
cronエントリに含まれる行は減りますが、呼び出すとroot
現在のユーザーとして編集が開始さcrontab -e
れるため、必要ありません。すべてのcronエントリは下にあるので、エントリを確認できます。また、cronジョブに関する特定のメッセージを含むcronログを確認できます。したがって、cron が操作を実行したことを確認できます。もちろん、スクリプトが問題ない場合は、cron エントリを記録する最善の方法は、MTA の実行中に一部のスパムを避けるためにエントリをリダイレクトすることです。最後の項目は、スクリプト自体にロギングを追加することです。これにより、すべてが正常に動作していると100%確信できます。cron
root
/var/spool/cron/<user>
/var/log/cron
>/dev/null
デフォルトでは、cronはbashからstderrとstdoutをリダイレクトするショートカットとしては使用されませんが、sh
解決策はcrontabにenv varibaleを追加するか、crontab行のスクリプトの前にenv varibaleを追加することです。 crontabは現在1つのシェルを呼び出します。リクエストを同時に表示できないため、可能であればメールプロキシが1つの解決策になる可能性があります。bash
cron &>
sh
SHELL=/bin/bash
bash -c