2012-02-15 6 views
1

저는 쉽게 cron 작업을 할 수있어서 쉽게 대답 할 수 있습니다. 그러나 여기서 잘못된 점이 무엇인지 알 수 없습니다. 나는 cron 작업을 사용하여 파일 이름을 바꾸는 PHP 스크립트를 실행하고있다. PHP 파일을로드 할 때 수행해야 할 작업을 수행하기 때문에 스크립트가 작동한다는 것을 알고 있습니다. 그러나 cron 작업은 매번 오류 전자 메일을 보냅니다. 나는 cron 명령을 사용하고작동하는 스크립트에서 오류가 발생합니다.

<?php 
rename("login/pools.php", "login/poolsbk.php"); 
?> 

: 여기

을 /home/dollarca/public_html/renamescript1.php 및 -q PHP가 생성하는 오류입니다 : 여기에 내가 실행 해요 스크립트는 경고 : 이름 바꾸기 (login/pools.php, login/poolsbk.php) : /home/dollarca/public_html/renamescript1.php 2 번 줄에 해당 파일이나 디렉토리가 없습니다.

오류가 발생하는 것으로 보입니다. 디렉토리의 파일 대신 스크립트 내의 파일 이름을 바꾸려고합니다. 잘못된 cron 명령을 사용하고 있습니까?

+0

가'login' 디렉토리가'public_html' 디렉토리의 하위인가? –

+0

이름을 바꾸려는 파일의 절대 경로는 무엇입니까? 'login/pools.php' 대신에'/ login/pools.php'의 이름을 바꾸고 싶을 수도 있습니까? –

답변

3

cron이 작업을 실행할 때 작업 디렉토리가 스크립트를 수동으로 실행하는 작업 디렉토리와 다릅니다.

쉬운 해결책은 함수에서 전체 경로를 사용하는 것입니다. 수동으로 PHP 스크립트를 실행하는 경우

rename("/home/dollarca/public_html/login/pools.php", "/home/dollarca/public_html/login/poolsbk.php"); 
+0

논리적으로 들리지만, 지금 시도해 보겠습니다. – user1206214

+0

글쎄 작동하지 않는 것 같지만 더 이상 오류가 없습니다. 내 서버 시간은 내 시간에서 벗어날 수 있습니다. 지금부터 1 시간 동안 시간을 ​​정하고 다시 시도해 보겠습니다. – user1206214

+0

그걸 고쳤습니다. – user1206214

2

난 당신이 디렉토리 /home/dollarca/public_html에서 그것을 할 가정합니다. cron이 실행하면, 그렇게하지 않을 것입니다. 절대 파일 경로를 사용하거나 당신이해야 할 (즉 대신 login/pools.php/home/dollarca/public_html/login/pools.php) 또는 먼저 해당 디렉토리로 변경 chdir()를 사용

<?php 
chdir("/home/dollarca/public_html"); 
rename("login/pools.php", "login/poolsbk.php"); 
?> 
관련 문제