한 줄에 스크립트 오류 메시지 작성

한 줄에 스크립트 오류 메시지 작성

명령을 실행하고 있어요

mv /prod/new/outputlog/error.log  /prod/hist/new/outputlog/error.log.32423423424

쉘 스크립트를 사용하십시오.

파일 error.log을 사용할 수 없으므로 명령은 자동으로 로그 파일에 오류 메시지를 기록합니다. 오류 메시지는 mv: cannot rename /prod/new/outputlog/error.log /prod/hist/new/outputlog/error.log.32423423424두 줄로 줄바꿈되지 않습니다.

이는 시스템에서 생성된 오류 메시지이므로 오류 메시지의 각 줄 길이를 제어할 수 없습니다. 메시지 길이가 80에 도달하면 시스템에서 메시지를 래핑하기를 원합니다.

답변1

mv이름을 바꾸기 전에 소스 파일이 존재하는지 확인하여 이러한 시도를 보호 할 수 있습니다 .

test -f /prod/new/outputlog/error.log &&
    mv /prod/new/outputlog/error.log /prod/hist/new/outputlog/error.log.32423423424

또는 오류 메시지를 캡처하여 두 줄로 분할해 볼 수 있습니다.

mv /prod/new/outputlog/error.log /prod/hist/new/outputlog/error.log.32423423424 2>&1 |
    fmt -s -w80 >&2

답변2

오류 메시지를 혼동하지 말고 파일을 이동하기 전에 테스트해 보세요.

if [ -f /prod/new/outputlog/error.log ]; then
    mv /prod/new/outputlog/error.log \
       /prod/hist/new/outputlog/error.log.32423423424
fi

또는 바로가기 논리를 사용하세요.

[ -f /prod/new/outputlog/error.log ] &&
mv /prod/new/outputlog/error.log \
    /prod/hist/new/outputlog/error.log.32423423424

로그 파일 누락이 보고된 문제인 경우 별도로 수행하십시오.

if [ -f /prod/new/outputlog/error.log ]; then
    mv /prod/new/outputlog/error.log \
       /prod/hist/new/outputlog/error.log.32423423424
else
    echo 'ERROR: /prod/new/outputlog/error.log is missing' >&2
fi

답변3

error.log를 "손상"시키는 대신, 보고 싶을 때 잘라내는 것이 어떨까요?

cut -c 1-80 error.log | less

관련 정보