본문 바로가기
프로그래밍/운영체제, 서버

Windows 10 작업 스케줄러로 PHP 스크립트 주기적으로 실행하기

by pentode 2018. 9. 5.

Windows 10에서 작업 스케줄러를 사용해서 PHP 스크립트를 주기적으로 실행시키는 방법을 보겠습니다. 꼭 PHP 스크립트가 아니더라도 batch 파일이나 실행 가능한 프로그램은 작업 스케줄러로 주기적으로 실행할 수 있습니다.



테스트에 필요한 스크립트를 만듭니다. 이 글에서는 D:/echo_date.php 파일로 만들었습니다. 실행될때마다 D:/datefile.txt 파일에 일자와 시간을 기록합니다.


<?php

$myfile = fopen("D:/datefile.txt", "a+") or die("Unable to open file!");

fwrite($myfile, date("Y-m-d H:m:s").chr(13).chr(10));

fclose($myfile);

?>



"시작버튼 -> Windows 관리도구 -> 작업 스케줄러" 를 실행합니다.




작업 스케줄러 화면에서 "기본 작업 만들기..."를 클릭합니다.



"기본 작업 만들기" 화면에서 작업의 이름과 설명을 입력합니다. 여기서는 "PHP 테스트" 라고 입력했습니다.




"트리거" 화면에서 매일에 체크합니다. 자신이 실행시킬 주기를 다양하게 선택할 수 있습니다.




앞에서 선택한 "트리거" 하위의 "매일"에 추가로 날짜와 시간을 선택합니다. 여기서는 매일 오전 1시에 실행하도록 설정했습니다.




"작업"에서 주기적으로 수행할 동작을 지정합니다. "프로그램 시작"을 체크합니다.




"작업" 하위의 "프로그램 시작"에서 실행할 프로그램을 지정합니다. php.exe 프로그램은 자신의 프로그램 위치를 지정하면 됩니다. 인수 추가에 실행할 스크립트를 지정합니다.


- 프로그램/스크립트(P): D:\util\php-7.2.9-nts-Win32-VC15-x64\php.exe

- 인수 추가(옵션)(A):  -f D:\echo_date.php




"마침" 화면입니다. 설정이 모두 완료되었습니다. 검토 후 이상이 없으면 "마침"버튼을 누릅니다.




화면 왼쪽의 "작업 스케줄러 라이브러리"를 클릭하면 새로 등록한 작업이 화면 가운데 상단의 리스트에 보입니다. "PHP 테스트" 를 클릭하면 중앙 하단에 설정한 속성들이 보입니다.


중앙 하단의 "보안 옵션" 부분을 보면 선택할 수 없로록 비활성화 되어 있고, "사용자가 로그온할 때만 실행" 에 체크가 되어있습니다.


"PHP 테스트" 작업이 선택되어 있는 상태에서 우측의 "실행" 을 눌러 작업을 실행해봅니다. 명령창에 떳다가 사라지는게 보일 것입니다.  D:\datefile.txt 파일에 새로운 날짜가 적혀 있는것을 확인할 수 있을 것입니다.


"사용자가 로그온할 때만 실행" 은 사용자가 로그온한 상태에서만 실행이되고, 프로그램은 인터렉티브 방식으로 프로그램이 떠서 사용자와 작용을 하게 됩니다.




"PHP 테스트" 작업을 더블 클릭하여 속성창을 엽니다. "보안 옵션"에서 "사용자의 로그온 여부에 관계없이 실행(W)" 에 체크합니다. "암호를 저장하지 않습니다." 에도 체크합니다. "확인"을 눌러 저장합니다.




이제 "실행"을 눌러보면 작업이 백그로운드로 실행되는 것을 확인 할 수 있습니다. 필요한 형태의 "보안 옵션"을 선택하면 되겠습니다.



반응형