형식 날짜 명령(날짜 + "%m/%d")의 결과를 grep 필터로 사용하여 시스템에 경고를 표시하는 다른 명령의 결과를 필터링해야 합니다. 주어진 날짜 알람.
Alertcommand가 콘솔에 경고 판독값을 제공한다고 가정합니다. alertcommand | grep 8/10
오늘의 로그를 얻을 수 있다는 것을 알고 있지만 date +"%m/%d"
실행할 때마다 날짜를 지정할 필요가 없도록 입력할 수 있기를 원하지만 이를 명령에 연결하는 방법을 모르겠습니다(가급적 생성하지 않고). 고객 하드웨어에서 실행되므로 임시 파일 또는 무엇이든 가능).
내가 찾고 있어요이 질문은 다음과 유사합니다., 그러나 동일한 방식으로 작동하게 만드는 방법을 알 수 없습니다.
답변1
Bash에서는 다음과 같은 것을 사용하십시오.alertcommand | grep $(date +"%m/%d")
$()
서브셸에서 명령을 실행하고 명령의 출력을 문자열로 반환합니다. 또는 명령을 백틱으로 묶어 동일한 효과를 얻을 수 있습니다.
답변2
간단히 date 명령의 출력을 다른 변수에 할당하고 이를 인수로 사용할 수 있습니다.
myDateVariable=`date +"%m/%d"`
alertcommand | grep $myDateVariable
이렇게 하면 나중에 날짜 값을 재사용하고 중간 단계를 디버깅할 수 있습니다.
답변3
FreeBSD의 쉘 csh에서는 귀하의 방법 중 하나를 사용할 수 없습니다.
1)
cat /var/log/exim/mainlog | grep $(date +%Y-%m-%d)
Illegal variable name.
2)
d=`date +%Y-%m-%d`;cat /var/log/exim/mainlog|grep $d
d=2011-11-13: Command not found.
하지만 다음과 같이 백틱 코드를 직접 사용할 수 있습니다.
cat /var/log/exim/mainlog | grep `date +%Y-%m-%d`