![한 줄에 스크립트 오류 메시지 작성](https://linux55.com/image/117899/%ED%95%9C%20%EC%A4%84%EC%97%90%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%98%A4%EB%A5%98%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%EC%9E%91%EC%84%B1.png)
명령을 실행하고 있어요
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