오류관리

Linux Crontab 파일로 등록하기

k9e4h 2022. 10. 18. 17:24

오류 상황

 

### test.sh
* * * * * echo "test script" > test.sh.log 2>&1

FTP로 test.lst 파일 올린 후

crontab test.lst 명령어 입력하여 크론탭 등록

정상 동작해야하는데 정상동작하지 않음

 

-#!bin/bash 설정해도 안됨

- PATH, HOME 등 환경변수 설정해도 안됨

- crontab 에서 바로 echo 실행해도 안됨, crontab -r롤 삭제했다가 다시 crontab -e로 echo 설정하면 동작함

 

오류 원인

FTP로 test.lst 파일을 올릴 때 binary 모드를 하지 않아서 개행 문자가 깨짐

vi -b test.lst 명령어로 test.lst를 binary 모드로 열어보면 문장 마지막에 ^M 이 붙어있는 것을 확인 할 수 있음

 

* ^M 이 붙어 있는 이유
윈도우에서 작성한 파일을 Unix/Linux상에 올릴때 윈도우에서는 CRLF 가 개행인데 Linux/Unix에서는 LF가 개행이라 나타나는 현상
상세 확인)) https://server-engineer.tistory.com/482

 

오류해결

해당 문자를 제거 후 다시 크론탭 등록하면 정상 동작함

FTP로 파일을 업로드할때 binary 모드로 파일을 업로드해야함

 

* 문자제거 명령어
vi로 파일을 연 후에  (여기서 ^는 숫자 6위의 특수문자가 아닌 리눅스 상의 컨트롤을 의미, mac에서는 command)
:%s/^M//g

* binary 모드로 파일 업로드
ftp {url}
binary
put test.lst

 

 

하루를 삽질했다... 다들 잘 해결하세요..

반응형