cron없이 10 초마다 명령을 실행하는 방법은 무엇입니까?


35

내가 실행할 cron때이 결함이 발생합니다

cron : /var/run/crond.pid를 열거 나 만들 수 없습니다 : 권한이 거부되었습니다

그래서없이 어떻게 할 수 cron있습니까?

추신 : svn의 파일이 변경되었는지 확인하고 특별한 스크립트가 있습니다.


권한이 없으면를 사용하여 cron을 실행하십시오 sudo.
익명

4
cron은 10 초마다 무언가를하지 않을 것임을 명심하십시오. 가장 세분화 된 것은 1 분에 한 번입니다.
세슘

cronjob을 만들려면 crontab -e편집기를 시작 하기 위해 실행 해야합니다. 현재 crontab -l
크론

@Anonymous 나는 루트 암호를 모르므로 sudo가 도움이되지 않습니다.
UAdapter

답변:


59

개인 cron구성에 액세스하려면 명령을 사용 crontab -e하여 cron 테이블을 편집해야합니다.

대안은 다음과 watch같습니다.

watch -n10 command args

마지막으로, 파일 시스템 이벤트를보다 효과적으로 모니터링하기 위해 패키지 inotifywait에서를 사용할 수 있습니다 inotify-tools.


1
명령을 큰 따옴표로 묶는 것이 좋을 수도 있고 예기치 않은 결과가 나올 수도 있습니다. watch -n<timeout> "command(s) arg(s)"같은watch -n2 "ps ux | grep ss5"
아킬레스

watch파이프와 따옴표를 사용하여 길고 복잡한 명령을 받아들이 기가 어려웠습니다 . 아래의 while 루프는 작동했지만 물론 런 어웨이 pid를 피하려면 항상 먼저 잠을 자야 합니다.
rjurney

@rjurney : 전체 명령을 따옴표로 묶거나 한 번 또는 두 번 watch -n10 "ls -l | grep $foo"
더하는

@enzotib 문제는 명령에 따옴표가있을 때옵니다. 따옴표 안에 따옴표 안에있는 따옴표는 bash에서 불가능한 접근 방식입니다. 이론적으로는 가능해야하지만 다른 경로를 포기하지 않고 bash에서 중첩 된 따옴표를 거의 얻지 못합니다.
rjurney

31

sleepwhile 루프 가있는 쉘 스크립트를 작성할 수 있습니다 .

#!/bin/sh
while [ true ]
do
    sh special_svn_script.sh
    sleep 10
done

5
while true사각 브레이크가 필요하지 않으면, 그렇지 않으면 "true"는 문자열로 해석되며 모든 문자열은 "true"만큼 좋습니다.
enzotib

1
@enzotib 그래서 당신은뿐만 아니라 주위에 쓸 수도 있습니다
Eduard Florinescu

이 방법이 작동하는 동안 수면 단계에 도달하지 못하는 문제가 발생할 수 있으므로 항상 잠을 자야 합니다.
rjurney

4

gnome-schedule (Install now!소프트웨어 센터 사용버튼을 클릭)
은 vixie-cron, dcron의 기능을 활용하여 crontab 파일을 관리하고 컴퓨터에서 작업을 쉽게 예약 할 수있는 그래픽 사용자 인터페이스입니다. 반복적 인 (정기적 인) 작업과 미래에 한 번만 발생하는 작업을 지원합니다. pygtk를 사용하여 Python으로 작성되었습니다.

멋진 기능

  • 작업을보다 쉽게 ​​추적 할 수 있도록 작업에 대한 사용자 지정 제목과 아이콘을 지원합니다
  • 동일한 작업을 반복해서 만들 필요가 없도록 템플릿이 지원됩니다. 이들은 gconf에 저장되며 Linux 배포판과 함께 쉽게 제공 될 수 있습니다.
  • 루트로 실행하면 모든 사용자의 crontab 및 "at"작업을 편집 할 수 있습니다.
  • "0 * * * *"대신 "매시간"과 같이 사람이 읽을 수있는 문자열
  • crontab 전문가를위한 고급 모드
  • 드롭 다운 메뉴에서 작업을 관리 할 수있는 "패널 애플릿"을 제공합니다
  • 다음과 같이 미리 정의 된 일반적인 표현 : 매분, 매주, 내일, 다음 주 달력을 사용하면 작업을 수행 할 요일을 선택할 수 있습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.