Content-Length: 155158 | pFad | https://www.na3.jp/entry/20120730/p1

crontabでの「%」の扱い - 元RX-7乗りの適当な日々

crontabでの「%」の扱い

昔、遭遇した気もするが、また忘れていたのでメモ。多分、常識の範疇w


crontabにこんな感じで設定を仕込もうとしたんですね。

*/5 * * * * /usr/bin/iotop -b -k -t -n 2 -o >> /var/log/iotop/"`hostname`_`date '+%F_%H'`"


すると、「メールが /var/spool/mail/root にあります」とメールが届きまして、、、

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

こんな感じで怒られたわけです。


あんれー?と思って、"/var/log/cron"を確認すると、

CROND[17743]: (root) CMD (/usr/bin/iotop -b -k -t -n 1 -o >> /var/log/iotop/"`hostname`_`date '+)

と表示されていて、あんれーーー!「%」以降がどっかいっちゃってるー、と気付きました。


んで、まぁ定番の"man 5 crontab"とかすると、ちゃんと答えが書いてあるわけです。。。

「第 6」フィールド (行の残りの部分) には実行されるコマンドを指定する。 その行のコマンド部 (改行文字または % 文字まで) が /bin/sh (またはその crontab ファイルの SHELL 環境変数で指定されたシェル) によって実行される。 コマンド中にパーセント記号 (%) が バックスラッシュ (\) によってエスケープされずに置かれていると、 改行文字に置き換えられ、最初に現れた % 以降の全てのデータは 標準入力としてコマンドに送られる。

Man page of CRONTAB


・・・ということで、

*/5 * * * * /usr/bin/iotop -b -k -t -n 2 -o >> /var/log/iotop/"`hostname`_`date '+\%F_\%H'`"

こんな感じで、crontabでの「%」記述は必要に応じてエスケープしましょうというログでした・・・。

それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́


プロのための Linuxシステム・10年効く技術 (Software Design plus)

プロのための Linuxシステム・10年効く技術 (Software Design plus)









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://www.na3.jp/entry/20120730/p1

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy