Server/에러 해결

[Crontab] /bin/sh^M: bad interpreter 해결

개발윗미 2021. 9. 20. 18:11

[문제]

데이터베이스 자동 백업을 위해 쉘 스크립트를 작성하고 crontab 설정을 하였다.

 

하지만, 스케줄이 정상작동 되지 않아 /var/spool/mail 경로에 존재하는 파일의 로그를 확인해본 결과

 

/bin/sh에 대하여 bad interpreter 내용이 담겨있었다.

/bin/sh^M: bad interpreter: No such file or directory

 

원인은 윈도우에서 해당 스크립트 파일을 만들거나 수정한 뒤, 파일을 가져와 실행했기 때문이다.

 

즉, 스크립트 파일 내 각 행에 대한 줄바꿈의 개행문자가 윈도우와 다르기 때문에 발생한다.

 

[해결]

해당 스크립트 파일을 바이너리 모드로 열고 ^M 문자를 지워준 뒤 저장한다.

vi -b 실행파일.sh