안녕하세요 메카솔루션입니다.
이번에는 리눅스에서 스케줄을 관리하기 위한 Cron을 에디터를 사용하지 않고 쉘스크립트로 수정하는 방법을 알아보도록 하겠습니다.
평소의 Cron 수정은
crontab -e
#nano 에 접속하여 수정
쉘 스크립트에서 수정하면 아래와 같은 방법으로 수정할 수 있습니다.
crontab -l > editcron
echo "크론 명령어" >> editcron
crontab editcron
rm cron
여기서 > 와 >> 를 볼수 있는데 이는 파일을 수정하는데 사용합니다.
>는 왼쪽에서 출력된 값을 덮어씌우고
>> 는 왼쪽에서 출력된 갚을 이어 붙입니다.
즉 cron명령의 목록을 확인하는 -l 로 원래 목록을 editcron에 저장하고
echo "크론 명령" 으로 출력된 값을 editcron에 이어 붙입니다.
마지막으로 crontab에 파일을 덮어씌우는 것으로 적용을 하는 것입니다.
이를 스크립트 파일로 변환을 하고 sudo ./script.sh 처럼 실행이 되었을 때 에러가 발생하게 됩니다.
그 이유는 sudo 를 통해서 계정 상태는 root가 되었지만 저희틀이 작업한 계정은 pi 계정이기 때문입니다.
그럴때는 cronttab -u pi -l 과 같이 -u pi 를 추가하여 대상 계정을 고정해주면 해결이 됩니다.
감사합니다.
담당자: yevgeny