2017-03-16 9 views
2

OS solarisになります。Crontabの行をエスケープすると、出力が

私はuptimeコマンドからシステム情報を記録しようとしています。 これは、1時間ごとに実行されるcrontabでジョブをスケジュールします。 稼働時間には時間の出力が含まれていますが、datetimeの出力はありません。したがって、私は稼働時間と日付コマンドを組み合わせます。

私はdatetime形式yyyymmddHHMMを使用して、日付形式の出力形式(date + "%Y%m%d%H%M")を作成します。

これはcrontabにないと完全に動作します。 crontabの場合はエラーの原因となるため、を****でエスケープして動作させる必要があります。だからここ は私のcronジョブラインです:

0 * * * * bash -c "date +'\%Y\%m\%d\%H\%M' | tr '\n' ' ' && uptime" >> /tmp/uptime.log 

だから私はそのようであることが予想される:

201703161309 1時09分午後まで52日(S)、14時45分、2人のユーザー、負荷 平均:0.99、1.41、1.45

しかし、私が得ることである:03 \ 16 \ 1 \ 2017 \

3 \ 09まで1:09 pmの52日(s)は、午後02時45分、2人のユーザー、負荷 平均:0.99、1.41、1.45

それでは、どのようにそれを正しく動作させるために。

ありがとうございます。

答えて

1

bashを使用しているので、%$'\045'をエスケープする別の方法があります。それは奇妙に見えますが、それは動作するはずです(私はそれをテストするソラリスがありません)

0 * * * * bash -c "date +$'\045'Y$'\045'm$'\045'd$'\045'H$'\045'M | tr '\n' ' ' && uptime" >> /tmp/uptime.log 
+0

それは働いた。ありがとう – aeliv002

関連する問題