특정 상황에서 작동하지 않는 폴더 모니터링


0

나는 파워 쉘 스크립트 ( 이것을 바탕으로 )를 사용하여 폴더를 모니터하고 파일 작성시기를 알 수 있습니다.

내 스크립트는 다음과 같습니다.

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = "H:\draw\"
    $watcher.Filter = "*.nrrd"
    $watcher.IncludeSubdirectories = $true
    $watcher.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER AN EVENT IS DETECTED
    $action = 
    { 
        $path = $Event.SourceEventArgs.FullPath
        $changeType = $Event.SourceEventArgs.ChangeType

        if ($path -like '*\tumor\*') 
        {
            Write-Host "The file '$path' was $changeType at '$(Get-Date)'" -fore green 
        }    
    }    
### DECIDE WHICH EVENTS SHOULD BE WATCHED 
    Register-ObjectEvent $watcher "Created" -Action $action
    while ($true) {sleep 5}

"손으로"파일을 만들면 작업이 제대로 실행됩니다 (녹색 문장이 표시됨).

그러나 파일은 손으로 작성된 것이 아니라 PHP 스크립트로 작성됩니다. 그리고 파일이 PHP 스크립트에 의해 생성되면, 액션은 트리거되지 않습니다.

그러나 PHP 스크립트에 의해 생성 된 파일을 복사 / 붙여 넣을 때 트리거가 발생하므로 파일에 문제가 없습니다.

그것은 PHP에서 생성 작업을 가능하게 할 수 있습니까?


주의 : 파일은 이렇게 만들었습니다.

$file = fopen($path, 'wb');
fwrite($file, $my_data);
fclose($file);

최신 정보

추가 연구가 끝난 후,이 문제는 PHP가 아니라 다른 사용자 / 세션 (powershell 스크립트를 시작한 사용자)이 파일을 만들 때 발생한다는 것을 알았습니다.

만나다 내 다른 게시물에 그래서


예, 그렇습니다. 이게 문제가 되나요?
Raccoon

@ LievenKeersmaekers 귀하의 URL은 더 이상 적용 할 수 없다고 생각합니다. Microsoft has confirmed that this is a problem in IIS 4.0 and 5.0. This problem was first corrected in Windows 2000 Service Pack 3. 그리고 SO에 대한 대답은 10 살입니다 ... 나는 문제가 매핑 된 드라이브 자체가 아니라 다른 사용자 / 세션이 파일을 만들 때라고 생각합니다. 로컬 컴퓨터에서 시도 했으므로 확인했습니다.
Raccoon

온 것이 전부 야. (늙은) 나는 질문을 혼란스럽게하지 않도록 내 의견을 삭제할 것이다.
Lieven Keersmaekers

답변:


0

PHP는 create 이벤트를 트리거하지 않지만 Changed 이벤트는 트리거하는 것처럼 보입니다. 다른 이벤트 중 일부를 시도해보십시오. 이리


근원있어? 다른 모든 이벤트를 시도했지만 아무 것도 트리거되지 않았습니다.
Raccoon

아니, 난하지 않습니다. 그것은 단지 생각이었습니다. PHP 스크립트에 의해 추가되지 않는 속성이 파일에있을 수 있습니다. PHP 생성 파일과 복사 된 파일의 모든 파일 속성을 비교 했습니까?
Ryan McVicar

손으로 만든 파일 (또는 복사 / 붙여 넣기)에는 소유자가 있습니다. DEBIAN\root 하지만 원래의 것 Unix User\www-data
Raccoon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.