왜 crontab 스크립트는 작동안함?
종종 '또는' 스크립트는 실행되지 crontab 스케줄상을 강타했다. 여러 가지 이유에 대해 다음과 같이 밝혔다:
- crontab 잘못된 표기법
- 권한 문제
- 환경 변수
이 커뮤니티는 wiki 목표로 하는 이유 '총' 스크립트에만 csetup crontab 지켜지지 않고 있는 것으로 보고 있다. 이와는 별도로 각 오토메이티드 쓰기 때문이다.
답 - 세부내용에서 호스트당 it& 이유에 대해 한 가지 이유는 포함시키십시오. # 39 의 실행되지 리스토어와 수리입니다 (es) 의 주된 원인 중 하나다.
하지만 예상대로 셸에서 실행되는 desktopplatforms 쓰기 전용 cron 특정 문제, 예를 들어 명령에 의해 잘못 실행하십시오 cron.
530
46
<! - 모든 언어: > 내주었다.
Cron 사용자의 작업 환경 변수 설정 최소 패스. 더미 (dummy), 다음과 같은 추가 작업을 차이를 볼 수 있습니다.
'다음' 작업을 다시 분리하십시오 생성할지 /tmp/env.output 기다립니다. 이제 '비교' 환경 '에' 을 (를) 의 출력을 콘텐트입니다 /tmp/env.output 실행하십시오 일반 가능하다.
일반적인 " gotcha"; 다음은 '길' 환경 변수 기술입니까 다르다. 어쩌면 네 cron 스크립트입니다 soundmixer. 섬코먼드 '명령' 에서 볼 수 있는 ',' / / bin / opt 소미프 추가되도록 '길' 에서 've you& # 39, / etc / 환경'? cron 무시하고 '길' '때' 해당 파일의 실행 해 도왔으매 섬코먼드 스크립트에서 페일오버됩니다 실행하십시오 때 함께 있지만 작동합니까 터미널에서 실행하십시오 cron # 39 의 가치가 있는 it& (cnn) / etc / 환경 변수 '에서' 에 전달되고 cron 작업 자체가 아니라, 그냥 '길' 등 com/go/4e6b330a_kr cron 구체적으로 설정합니다.
방금 설정한 것을 해결하기 위해, 자신의 '길' 맨 위에 가변적입니다 스크립트입니다. E. g.
그냥 모든 명령을 사용하여 일부 포지셔닝하십시오 절대 경로 대신. 내가 어하여 추천합니까 iqn. 무슨 일이 고려해보십시오 스케쳐내 다른 시스템에서 실행할 수 있는 '에 대해, 시스템, 이 명령은 스크립트입니다 /opt/someAppv2.2/bin' 를 사용할 수 있습니다. # 39 you&; d '/ / bin / opt 소미프 교체하십니까 전체 스크립트입니다 거쳐야 할 게 아니라 작은 편집하십시오 /opt/someAppv2.2/bin' 하고 '을 (를)' 의 첫 번째 줄의 스크립트입니다.
경로도 설정할 수 있습니다, 이를 모든 변수를 crontab 파일이 적용하십시오 cron 작업. E. g.
내 상단형 잡았다. 잊지 경우 추가하기에서는 끝에 개행 문자 'crontab' 절실해졌습니다. 즉, 빈 할말이다 crontab 파일이 끝나야 한다.
다음은 관련 섹션의 이 문제에 대한 맨페이지가 (crontab '다음' 양반이군요 건너뛰십시오 및끝):
Cron 데몬입니다 실행되고 있지 않습니다. 정말 망쳤어 대체하십시오 몇 개월 전.
유형:
볼 수 없는 경우 어졌다면 cron 실행되고 있지 않습니다. sudo /etc/init.d/cron cron '시작' 시작하는 데 사용할 수 있습니다.
',' ',' 의 파일 이름은 'cron.d/ 스크립트입니다 cron.daily/ cron.hourly/' 등, 그렇지 않으면 부품 실행하십시오 저들이요 건너뛰려면 joyon. ('.') 를 포함하지 않아야 합니다
지켜보리니 부품 실행하십시오 (8):
그래서, 'backup.sh', 'analyze-logs.pl' 에서 'cron.daily/ cron 스크립트입니다 경우' 디렉터리인 you& # 39; d 베스트중에 분리하십시오 확장명은 이름.
'Sh' 명령을 실행하는 cron 사용하여 많은 환경에서 사용할 수 있으며, 많은 사람들이 solaris. 정보기술 (it) '' 내주었다.
이 제안 또는 수리입니다 테스트하려면 실패한 명령:
쉬 캜 " mycommand";
배시 - c " mybashcommand";
쉘로 = /bin/bash
/bin/bash!
일부 시간대에 문제가 있었습니다. 실행하는 cron 은 새로 설치할 수 있는 시간대. 이 솔루션은 재시작하려면 cron 있었다.
절대 경로 스크립트에만 사용해야 합니다.
예를 들어, '/ bin / 그렙' 대신 '' 그렙 사용해야 합니다.
대신:
이는 특히 같은 명령을 실행할 때 사용할 수 있기 때문에 까다로운 쉘입니다. 그 이유는 같은 환경 변수 '길' '그' cron 없는 사용자로.
Crontab 명령을 할 경우, cron 은 '%' 심볼일 항목이없습니다 해석할 수 있습니다. 그래서 모든 명령 '%' 를 사용한 경우 항목이없습니다 (사양명세 같은 형식의 일자 명령) 이 이스케이프입니다 합니다.
여기 있는 좋은 정보 및 기타: http://www.pantz.org/software/cron/croninfo.html
Cron 것을 요구하고 있는 스크립트입니다 실행할 수 없습니다.
Chmod +x / path / to / 서류 '가' 를 실행하여 스크립트입니다 실행가능파일 이 문제를 해결하는 합니다.
39 의 암호가 만료되었음을 user& 하는 것도 가능하다. # 39 의 암호를 만료시킬 root& 수 있다. You can '꼬리' 와 - f /var/log/cron.log cron 실패하고 암호란이 기된 볼 수 있습니다. 이렇게 하면 절대 만료시킬 비밀번호를 설정할 수 있습니다. x - 1 ',' passwd < username>.
일부 시스템 (Debian, unbuntu) 의 로깅하기 cron 기본적으로 활성화되어 있지 않습니다. 또는 /etc/rsyslog.d/50-default.conf /etc/rsyslog.conf 있는 선.
('sudo 나노 /etc/rsyslog.conf') 주석 편집해야 할 수 있습니다.
그 후, 재시작하려면 통해 사이슬로그 합니다.
또는
출처: 활성화하십시오 crontab 로그인하십시오 Debian Linux
일부 시스템에서 파일의 cron 비활성화됨 기본적으로 별도의 로깅하기 (Ubuntu) 에 출연, 하지만 cron 관련 로그는 syslog 절실해졌습니다. 한 사용할 수 있습니다.
cron 관련 메시지를 볼 수 있습니다.
어떻게 설명해야 할 경우 그를 크론조프 gui 애플리케이션 표시하십시오 사용해야 합니다.
예: Firefox 와 함께 출시 cron.
스크립트는 컨테인먼트하는 익스포트합니다 0 표시하십시오 '=' 세운다.
39, m, I& 두렵도 권한만으로 문제가 매우 흔한 일입니다.
단, 일반적인 실행하십시오 root& crontab 에 있는 모든 것을 해결 방법은 사용하여 # 39 는 가끔 정말 안 좋은 생각. 분명히 설정값입니다 이벤트수정적절한 권한이 크게 묵과할 문제가 있다.
불안한 cron 테이블 사용 권한
Cron table) 은 [거절됨] (http://bazaar.launchpad.net/ ~ ubuntu-branches/ubuntu/raring/cron/raring/view/head:/database.c # L380) 는 불안한 경우 해당 사용 권한
함께 이 문제를 해결할
스크립트는 위치에 맞는. 이는 항상 있지만 절대 경로 사용) 에 관련된 스크립트입니다 아니고 마찬가지다. Cron 사용자의 작업 할 수 있는 cd '을 실행하기 전에 특정 디렉터리' 레이크 작업을 할 수 있으며, 예를 들어 응용 프로그램에 대한 올바른 응용 프로그램 레일 스크립트루트 com/go/downloads_kr 올릴 뿐 아니라 해당 데이터베이스 작업을 구성, etc.
따라서 crontab 항목이
같은 게 더 낫다
,, 코드 class = " < < pre> bash" >.
또는, 계속 crontab 엔트리여야 및 리스토어할 간단해진다는 다양하다.
다음 코드를 사용하여 user> /scripts/session-purge.sh ':' 에서 /home/<;
,, 코드 class = " < < pre> sh" >. cd /var/www/production/current /usr/bin/rake db:session_purge RAILS_ENV = 운영 < /code> < /pre>;;;
Cron 간에 서로 다른 작업 사양명세 포맷하십시오 users& # 39. crontab 파일이 (/ var / 스풀과 cron / / / / / 또는 / var / 스풀과 sername cron crontab sername) 및 시스템 crontab ('/etc/crontab' 과 '에서 파일을 /etc/cron.d').
39, & # 39 user& crontab 추가 필드를 시스템이 있다. 직전 명령을 실행할 수 있습니다.
반대로, cron 처럼 '는 오류뿐만 / usr / bin / 리스타르스리스 유효하지 않은 sername' 또는 이와 유사한 역동기화에 때 발생합니다.
cron 은 스크립트입니다 호출 명령과 함께 - verbose 옵션
전 그 날 페일오버합니다 cron 스크립트입니다 입력 중에 포함되어 있기 때문에 난 롬폭 자동모드 스크립트입니다 쉐퍼드도 - verbose 옵션:
Fine 에서 실행할 때 실행했음 스크립트입니다 쉘로 때문에 자세한 정보 출력을 마이그레이션된 crontab 에서 실행할 때 실패했다 에서 실행되는 경우 쉘로 곳이 있지만, stdout 에서 실행되는 경우 crontab. # 39, & # 39, v& 분리하십시오 쉽게 고칠 수:
가장 흔한 이유는 cron 못할 것으로 잘못 밝혔다 "고 밝혔다. 오후 11:15 위한 실무 작업에 걸리는 지정할 수 있다 '' 대신 ' 23 스케줄링된 15 15 15 11' 또는 '11'. 또한 작업에 대해 안 된다 '는' 2-6 자정 이후에 요일, 월요일 ~ 금요일 자정 이후에 1-5 '아닌'. 일반적으로 특정 날짜에 문제가 아니라 우리가 ' ' 는 3일 3월 3 1 포락선으로 사용할 경우는 거의 없습니다. 잘 모르면 cron 스케줄링합니다 온라인으로 whitehouse. https://crontab.guru/. 확인하십시오.
'시간' 에서 지원되지 않는 옵션을 사용하여 같은 경우 다른 플랫폼에 작동합니까 2/3 사양명세를 장애가 발생할 수도 있습니다. 이것은 매우 유용한 옵션을 제외한 전 세계 어디서나 사용할 수 있습니다. 또한 여러 문제가 1-5 '또는' like '나는 실행하십시오 열거합니다 1.3,5'.
또 부적격 사용하여 경로에서 발생하는 문제입니다. 일반적으로 기본 경로는 '만' 그래서 /bin:/usr/bin 표준 명령을 실행할 수 있습니다. 일반적으로 이러한 디렉토리에는 don& # 39, 원하는 명령을 없다. 또한 스크립트에만 비표준 명령을 사용하여 영향을 줍니다. 다른 환경 변수를 사용할 수 없습니다.
기존 crontab 나를 완전히 빚어진 문제를 건드리지. 내가 지금 이 파일에서 데이터를 복구할 수 있는 기존 crontab 로드하십시오 복제본입니다. 'it gets "만약 사용하여 crontab 뻦 사방. 난 계속 crontab 에 ~ 이 복제본입니다 / bin. 그것은 전체에 대해 '선' # EOF 로 끝난다. 이는 다음과 같은 항목을 통해 매일 다시 로드했습니다 crontab
! /usr/bin/crontab pre> <;
리로드하려면 이 crontab
위에서 실행되는 명령 실행 가능한 경로에 의존하고 있는 리로드하려면 crontab 충돌 crontab. 일부 시스템은 실행 파일을 지정하는 crontab 에 명령을 할 수 있습니다. 그럼 내가 자주 사용하는 경우 $ (hostname) 는 네트워크 공유 디렉토리에는 crontab. ',' 이름으로 절실해졌습니다. 그러면 결국 잘못된 crontab 에 로드되었는지 사례가 수정하십시오 잘못된 서버.
어떻게 해야 할 수 있으며, 임시 파일을 사용하여 백업하도록 로깅합니다 crontab 편집 (crontab - 내가 사용하는 유일한 시간 'e') 에 자동으로 뺐다. 예약 매개변수입니다 그러겄지 헤더도 이용할 수 있는 도움을 받고 있습니다. 나는 그들을 crontab 편집 때 사용자 경험이 될 것이라고 덧붙였다.
나는 엘리가 명령의세 사용자 입력을 필요로 하는 경우는 드물다. 이러한 페일오버합니다 crontab 아래에 있지만, 일부 협력합니다 입력입니다 리디렉션을.
Ssh 를 통해 액세스하며 경우 계정에 로그인할 수 있는 것을 볼 수 있는 것이 아니라 에이전트에는 키 암호를 에이전트에는 잠겼음을 등의 이유로 인해 만료하고 또는 잘못된 암호란이 시도_횟수)
팜 시스템에서 사용하는 경우, 계정이 잠겨 크론조프 실행되지 이 막을 수 있다. (# 39 에 대해 이렇게 하는 것이 아니라, ve 테스트되었습니다 I& solris unbuntu)
이와 같은 메시지를 발견할 수 있습니다 / var / adm / 메시지:
< pre>; 24일 10월 07 51 00 미상자 cron [29024]: [ID 731128 오토리노이스] pam_unix_account: cron 시도중입니다 잠겨집니다 계정을 로컬에서 호스트입니다 미우저 검증하십시오 24일 10월 07 52tb 00 미상자 cron [29063]: [ID 731128 오토리노이스] pam_unix_account: cron 시도중입니다 잠겨집니다 계정을 로컬에서 호스트입니다 미우저 검증하십시오 24일 10월 07 53 00 미상자 cron [29098]: [ID 731128 오토리노이스] pam_unix_account: cron 시도중입니다 잠겨집니다 계정을 로컬에서 호스트입니다 미우저 검증하십시오 24일 10월 07 54 00 미상자 cron [29527]: [ID 731128 오토리노이스] pam_unix_account: cron 시도중입니다 잠겨집니다 계정을 로컬에서 호스트입니다 미우저 검증하십시오 < /pre>;
모든 것은 실행하십시오 해야 합니다.
< pre>;
passwd - u & USERNAME> lt;;;
< /pre>;
crontab 노력해야 할 수 있는 루트로 잠금해제합니다 에이전트에는, 그리고 다시.
다음과 같은 명령을 경우
또한, t, t # 39 doesn& 작동합니까 진실이며당신이 can& 볼 수 있어 출력입니다 # 39 cron isn& # 39, t apc® 반드시 의미하는 것은 아니다. # 39, 갈 수 있는 스크립트입니다 줄바꿈할 및 출력물에는 stderr doesn& 전달할 수 없다 / tmp / 출력입니다. 이 경우, t 가 아니라 # 39 이 출력입니다 확인란 isn& 캡처을.
to see if this 문제가 잡을 수 있습니다.
I was 먹어서나 설치 쉘로 이전 트랜잭션까지 데이터베이스에서 데이터를 다른 스크립트입니다 스크립트입니다 삭제하시겠습니까 만듭니다. 작업의 일환으로 명이었지만 구성려면 매일 '자의적' 으로 실행할 경우 데이터베이스 작업에 시간이 로드하십시오 기능을 cron 은 낮음입니다.
내가 만든 마이크론조프 파일 ',' 을 (를) cron 스케줄링합니다 sername &. 명령과 복사됩니다 /etc/cron.d '대한' 디렉터리입니다. 내 두 정보:
/ Var / log / syslog 권한 문제로 '' 도 비슷한 상황이 표시됩니다.
'선 () 은 첫 번째 파일과 파일 i / etc / crontab' 나중에 '에서' /etc/cront.d 했다.