질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

crontab -e 가 이상해서요~

작성자 정보

  • 허접플 작성
  • 작성일

컨텐츠 정보

본문

Sulinux1.0 사용.

테스트 서버에 실제 웹서버와 똑같이 crontab -e를 설정하였습니다.

두개의 사양은 똑같습니다. 그런데 실제웹서버에는 crontab -e에 설정한 내용들이

아주 잘 돌아가고 있습니다.

그런데 새로 설치한 곳에서 crontab -e에 설정한 것들이 하나도 안돌아가는것 같습니다.

/var/log/cron에서 보면 지정해놓은 시간대별로 명령어가 뜨긴 하는데

쉘 프로그램들이 돌아가질 않습니다.

그래서 직접 돌려보니 쉘 프로그램은 이상없이 실행되어집니다.

지정해놓은 시간에 crond데몬이 실행이 되면서 crond 가 추가됩니다.

안되는 것 같아 똑같은 것을 또 실행하면 아래처럼 늘어나기만 합니다.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#]ps -ef | grep crond
root      5710     1  0 10:26 ?        00:00:00 crond
root      5711     1  0 10:26 ?        00:00:00 crond
root      5712     1  0 10:26 ?        00:00:00 crond
root      5713     1  0 10:26 ?        00:00:00 crond
root      5714     1  0 10:26 ?        00:00:00 crond
root      7397  4714  0 11:10 pts/1    00:00:00 grep crond
이것을 killall crond 했다가 다시 시작을 하고 나서
반복을 하고 나면 위처럼 똑같이 나옵니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/tmp를 보라고 해서 보았지만 1777 맞고요, crontab -e를 실행하면
정상적으로 /tmp에 먼가 생겼다가 사라집니다.

제가 테스트용으로 설정한 내용은

#]vi /root/test.sh -->루트권한으로 700입니다.
---------------------------------------------
#!/bin/bash

export Today="`date '+%Y%m%d'`"

if [ ! -d /backup/backup/$Today ]; then
 mkdir /backup/backup/$Today
fi
---------------------------------------------

이것을 #]crontab -e
---------------------------------------------
30 10 * * * su - root -c '/root/test.sh'  -->실제웹서버에서 카피해온것임
---------------------------------------------
이렇게 하였습니다.
시간되면 안돌아갑니다 ㅠ.ㅠ

혹시나 하여

#]vi /etc/crontab 에 설정해 보았습니다.
-------------------------------------------------
20 10 * * * root /root/test.sh         
-------------------------------------------------
여기서는 정확한 시간에 잘 됩니다.


crontab -e 와 /etc/crontab 이 같다고 하는데 왜 crontab -e에서는 실행이 안되고
/etc/crontab 여기다 설정하면 돌아가는 걸까요??
제가 멀 잘못적었나요??
아니면 sulinux 가 이번에 1.5로 되면서 버그 인건가요?
실제 웹서버는 1.5나오기전에 설치하고 지금까지 아무 이상없이 잘쓰고 있습니다.
그런데 1.5 되고 나서는 갖고있는 CD로 1.0만 설치하는데도
yum을 쓰면서 자꾸 여러가지 문제가 생겼는데...
이것도 그거랑 관련이 있는것인지...
좀 알려주시기 바랍니다.

주위에서는 그냥 신경쓰지 말고 /etc/crontab 여기다 설정하고 잘 돌아가게
쓰면 되지 않냐고 하는데
어디는 되고 어디는 안되고?? 가 이해가 안가 글 올립니다.

선후배님들의 답변 기다리겠습니다.

관련자료

댓글 2

정원용님의 댓글

  • 정원용
  • 작성일
sulinux는 사용경험이 없습니다만, crontab -e 로 수정하시는편을 권장합니다.
그리고 정확한 시간까지 필요없다면 레드햇 계열에서는 /etc/cron.daily 등의 폴더에
쉘 파일을 넣어두시는것도 괜찮습니다.
그리고 역시 레드햇 계열입니다만 너무 근접한 시간을 설정해서 돌려보려고 하면 기동되지 않는 경우가 있습니다. crontab -e 명령으로 편집한 후의 5분정도 뒤의 시간으로 맞추시기 바랍니다. 저의 경우 약 3분 이내 설정에서는 기동하지 않았습니다.

정원용님의 댓글

  • 정원용
  • 작성일
또 일반 유저의 crontab에서 아래를 실행하면
30 10 * * * su - root -c '/root/test.sh'

당연하겠지만, 루트 패스워드를 요구하느라 콘솔 입력 대기 상태로 빠지게 됩니다.
sudo등을 사용하고 계시다면 유저의 패스워드를 요구하게 됩니다.
그러므로 root유저가 crontab -e 로 자신의 crontab에 등록한 것인지도 확인해보시기 바랍니다. crontab -e 명령은 아시겠지만 각 유저가 자신의 crontab 에 작업을 등록하는 것입니다.
그러므로 root가 아닌 유저가 su - root 등을 사용할 시 패스워드를 요구하고 이것이 대기상태를 유발할 수 있습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  476 명