
최근에 /usr/bin/logger에 대해 알게 되었는데 매우 좋다고 생각합니다.
우선순위 인수(-p)(facility.info, Facility.alert 등)가 포함되어 있음을 확인했습니다.
따라서 표준 입력만 기록하려면 다음과 같이 합니다.
stuff | logger -p cron.info
stderr만 기록하려면 다음과 같이 하세요.
stuff 2>&1 > /dev/null | logger -p cron.err
stdout과 stderr을 모두 기록하려면 다음을 수행하십시오.
stuff 2> >(logger -p cron.err) | logger -p cron.info
복사 붙여넣기를 피하기 위해 이 작업을 수행하는 더 간결한 방법이 있는지 궁금합니다.
대신에 그런 종류의 것들을 얻을 수 있는 방법이 있나요?
logging -F cron -s info -e err stuff
매우 감사합니다
답변1
원하는 구문이 다음과 같다면 매우 쉬울 것입니다.
logging cron info err stuff
그러한 경우에는 다음 기능을 사용하십시오.
logging() {
if [ "$#" -lt 4 ]; then
echo "Too few arguments." >&2
return 1
else
local prefix postfix1 postfix2
prefix="$1"
postfix1="$2"
postfix2="$3"
shift 3
"$@" 2> >(logger -p "$prefix.$postfix2") | logger -p "$prefix.$postfix1"
fi
}
노트:
- 대신 독립 실행형 스크립트를 작성할 수 있습니다.
- 위와 같이 간단하지는 않지만 구문 분석이
-F
가능 합니다-s
.-e
키스-y 접근.