2011-04-19 4 views
0

글쎄,다른 시간에 3 PHP 스크립트를 실행하는 방법, 매 30 분마다 크론 작업으로?

나는 3 개의 다른 PHP 스크립트를 가지고 있으며 실제로는 cron 작업에 의해 실행되고 있지만 또한 3 개의 항목이 내 cron 파일에 있으며, 하나만 갖고 싶습니다. 설명을하려고합니다 :

1 - 파일 내 데이터베이스에서 쿼리를 실행하고 데이터베이스에 일부 데이터를 저장합니다. (몇 초 정도 걸립니다.) 2 - 스크립트 번호 2를 실행하면 웹 서버 내에 2 개의 새로운 구성 파일이 생성됩니다. (실행에 1 분 이상 걸립니다.) 3 - 세 번째 파일은 ssh 연결을 열고 서버에서 일부 명령을 실행하면 생성 된 파일을 서버에 넣고 서버에 다시로드합니다.

실제 상황 :

나는 모든 3 스크립트, 다음 내가 처음 하나를 실행, 30 분마다 실행해야 5 분 후에 나는 마침내 두 번째를 실행하고, 3 스크립트 매번 실행 15 분 후 스크립트를 실행했습니다. 2 스크립트를 실행했습니다. 3

완벽하게 작동하지만 단일 PHP 스크립트에서 모든 작업을 수행하고 싶습니다. 가능한 경우 내 cron에서 한 번만 호출하면됩니까?

+3

'include ("1.php"); include ("2.php"); include ("3.php"); –

+0

서로 사이에 시간이 필요합니다. – B4NZ41

+0

저는 매 30 분마다 웹 서버를 재부팅하는 이유가 궁금합니다! – Jakub

답변

2

스크립트가 모두 작업을 완료 한 이전 스크립트에 의존하는 경우 고정 된 간격으로 첫 번째 스크립트 만 실행 한 다음 해당 스크립트가 다른 두 스크립트를 차례대로 실행하게해야합니다.

stage1.php : 첫 번째는 어떻게해야하고, 당신이 경우 모든 일을 중단 할 수있는 기회를 제공대로 완료 할 때까지

<?php 

... do important stuff... 

include('stage2.php'); 
include('stage3.php'); 

그 방법은, 두 번째와 세 번째 스크립트가 실행 시작되지 않음 뭔가 첫 번째 순서에서 실패했습니다.

다른 방법으로는 매우 경솔 할 것입니다. (1) 실행 백업

  • 스크립트 # 2 이전 다른 서버로 백업 파일이
  • 스크립트 # 3은 어떤 이유로 스크립트에 대한 백업
  • 에서 정리

    • 스크립트 번호 : 다음과 같은 순서를 고려 # 1은 스크립트 # 2가 시작될 때까지 오래 실행되고 백업이 완료되기 전에 백업 파일을 전송하기 시작합니다. 파일 전송에는 네트워크가 사용 중이므로 이제 백업이 실행되어 다른 서버로 전송됩니다. 정리 스크립트가 스크립트 # 1이 작성한 .tar.gz를 삭제하고 삭제했습니다. .

    +0

    이것은 그가 원하는 것 같지 않습니다, 분명히 그들은 특정 시간에 달릴 필요가 있습니다. (왜 그런지 물을만한 가치가 있습니다) –

    +0

    아주 좋은 설명이었고 정말 도움이 될 것 같아요. 첫 번째 블록과 포함 사이의 일부 기능을 사용하십시오. sleep() 함수와 같은 것 .. 그러나 나는 확실하지 않다. – B4NZ41

    +0

    Cron은 스크립트를 중간에 시작할 수 없으므로 3 개의 seaerate cron 작업을 예약하거나 첫 번째 스크립트를 예약해야한다. 내부적 인 일을해야합니다. 그것이 무엇이든간에, 다음 스크립트가 실행될 때까지의 시간 (초)을 계산하고 그 시간 동안'sleep()'을 계산하십시오. –

    관련 문제