2014-10-09 2 views
0

PHP로 시스템 가동 시간, 현재 시간 및 시스템에 로그인 한 사용자의 양을 로그 파일에 기록하고 crontab을 통해 지속적으로 업데이트해야하는 스크립트를 작성했습니다.php를 사용하여 crontab을 사용하여 출력 파일에 여러 항목을 추가 하시겠습니까?

내가 도움이 필요한 것은 업데이트가 파일 내에 누적되어 지속적으로 추가되기를 바랍니다. 지금까지 스크립트가 실행될 때마다 최신 업데이트가 이전 업데이트를 덮어 씁니다.

내가 한 것은 배열의 배열을 선언하고 어레이의 내용을 배열로 푸는 것입니다. (이것은 내 부분에 약간의 반쯤 구운 논리일지도 모릅니다) .

내 코드 :

$fileName = '../so-and-so directory/output.log'; 
$dt = date('m/d/y'); 
$time = date('h:i A'); 
$data = shell_exec('uptime'); 
$uptime= explode(' up ', $data); 
$uptime = explode(', ', $uptime[1]); 
$uptime = $uptime[0].','.$uptime[1]; 
$users = system('w', $who); 
$array = new SplFixedArray(3); 



$fileLog = fopen($fileName, 'w'); 
$fileString = "Date: ".$dt. "\n". " Time: ".$time . "\n". 
"System uptime ". $uptime ."\n" ."Users " . $users; 

foreach ($array as $entry) { 

array_push(file_put_contents($fileName, $fileString)); 

} 

fclose($fileLog); 

나는 해결책은 매우 간단하다고 생각하지만 난 그것을보고 싶어. 누군가 내게 단서를 주시겠습니까?

+0

what $ array? 그것이 존재하지 않습니다 –

+0

그건 내 부분에 내 스크립트를 실험하려고 반쯤 구운 논리였습니다. 나는 PHP에 익숙하지 않아서 나를위한 약간의 시작 단계이다. –

답변

0

"w"filemode는 open시 파일을 자릅니다. "a"대신 끝에 추가합니다. 자세한 내용은 fopen(3) 또는 PHP 설명서를 참조하십시오.

또한 file_put_contents()이 파일을 파괴하고 있습니다. 대신 fwrite()을 시도하십시오.

+0

는이 스크립트로 깨진 것보다 몇 가지 더 많은 것을 가지고 있습니다. –

0

drop fopen; 단순히 기본적으로 기존 파일을 덮어 쓰게됩니다

file_put_contents($fileName, $fileString); 

file_put_contents를 사용합니다. 한마디로

:

* * * * * such-and-such-script.php >> ../so-and-so directory/output.log 2>&1 

은 그들에게 새로운 덮어 쓸 이전하지 않고 추가하려면 :

$fileName = '../so-and-so directory/output.log'; 
$dt = date('m/d/y'); 
$time = date('h:i A'); 
$data = shell_exec('uptime'); 
$uptime= explode(' up ', $data); 
$uptime = explode(', ', $uptime[1]); 
$uptime = $uptime[0].','.$uptime[1]; 
$users = system('w', $who); 

$fileString = "Date: ".$dt. "\n". " Time: ".$time . "\n". 
"System uptime ". $uptime ."\n" ."Users " . $users; 

file_put_contents($fileName, $fileString); 
0

그래서 내가 같은 내 crontab 파일을 편집 할 필요가 있다고 밝혀 . 나는 또한 fopen()을 잃었고 file_put_contents 대신에 파일에 fwrite()를했다. 그것은 위대한 지금 작동합니다. 고맙습니다!

+0

cron 작업의 어떤 것도 실제로 스크립트가 호출되는 한 여기에 차이를 만듭니다 –

관련 문제