5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェルスクリプトから logger で syslog に記録しておくときの私的パターン

Posted at

cron から実行されたシェルスクリプトで syslog に何かを記録するために logger を使うことがある。

logger には -i オプションがあってこれで tag の隣に [PID] をつけられるのだけれど、これでつく PID は logger 自体の PID なので、シェルスクリプト内で 1 行ちょろりと実行する分にはあまり意味のない PID が記録されてしまう。

ダメな例
#!/bin/sh

logger -it "compress_syslog" -p local1.info 'compressing started'
## 時間のかかる処理とかいろいろ
logger -it "compress_syslog" -p local1.info 'compressing ended'

exit 0
ダメな実行例
Oct 22 18:01:19 test4111 compress_syslog[20139]: compressing started
Oct 22 18:01:29 test4111 compress_syslog[20143]: compressing ended

ので、-t オプションのタグ名のところに当該シェルの PID を表す [$$] をつけてあげると良い。
これで同じ PID のシェルスクリプトから出てきたログであることを syslog 上で認識できる。

私的loggerパターン

logger -t "{スクリプト名}[$$]" -p {facilityとpriority} '{ログメッセージ}'
使用例
#!/bin/sh

logger -t "compress_syslog[$$]" -p local1.info 'compressing started'
## 時間のかかる処理とかいろいろ
logger -t "compress_syslog[$$]" -p local1.info 'compressing ended'

exit 0
実行結果例
Oct 22 18:01:48 test4111 compress_syslog[19848]: compressing started
Oct 22 18:02:03 test4111 compress_syslog[19848]: compressing ended
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?