2017-03-16 11 views
2

OS solaris를 만듭니다.Crontab 줄 이스케이프 %는 출력에서 ​​

uptime 명령에서 시스템 정보를 기록하려고합니다. 이를 위해 매시간 실행되는 crontab에서 작업을 예약합니다. 가동 시간은 시간의 출력과 함께 제공되지만 datetime의 출력이 없으므로 날짜 명령과 가동 시간을 결합합니다.

이 날짜 형식 출력 (date + "% Y % m % d % H % M")으로 datetime 형식 yyyymmddHHMM을 사용하고 싶습니다.

crontab에 없으면 완벽하게 작동합니다. crontab의 경우 %으로 인해 오류가 발생하므로 %을 ****로 이스케이프 처리해야 작동합니다.

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

그래서 내가 그런 것으로 밝혀 기대 : 그래서 여기 내 cron 작업 라인이다

201703161309 오후 1시 9분 최대 오십이일 (들), 14시 45분, 2 사용자,로드 평균 : 0.99, 1.41, 1.45

하지만 내가 얻을 것은 : 2017 \

\ 03 \ 16 \ 1 3 \ 09 오후 1시 9분 최대 오십이일 (들), 14시 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