Linux+unlink+fopen проблемма совместимости на сервере

Gremboloid

инженера Гр...
Linux+unlink+fopen проблемма совместимости на сервере

Доброго времени суток. Описываю суть своего вопроса:
Некий скрипт в выбранной папке уничтожает все файлы и должен создать один файл
PHP:
$REAL_PATH = dirname(__FILE__).'/files'; 

// 1. Удаляем файлы
if ($handle = opendir($REAL_PATH)) {
    while (false !== ($file = readdir($handle))) { 
            if ($file != "." && $file != ".." && !is_dir($REAL_PATH.'/'.$file)) { 
            unlink($REAL_PATH.'/'.$file); 
        } 
    }
    closedir($handle); 
}
//2. создаем файл
    if (!$f = fopen($REAL_PATH.'/history.log',"w")) {exit;}
    if (fwrite($f, 'clear '.date("d-m-Y")) === FALSE) {exit;}
    fclose($f);
скрипт на выполнение запускается sh файлом:
#!/bin/sh
/usr/bin/php /home/alexander/script/docsdel.php

После выполнения скрипта все файлы удалялись, но новый не создавался. Пришлось заремить кусок скрипта удаления файлов и переписать sh файл на:
#!/bin/sh
find /home/alexander/script/files -type f | xargs rm -f
/usr/bin/php /home/alexander/script/docsdel.php

PHP Version => 4.3.10
System => Linux 2.4.2
Кто сталкивался с такой ситуацией? как выкручивались? Возможные причины такого поведения?
Спасибо.
 

Gremboloid

инженера Гр...
error_reporting (E_ALL);
нет ошибок
Время выполнения менее секунды
 

McSimm

Новичок
я правильно понял?
после того, как из скрипта была убрана первая часть с удалениями, вы добились работоспособности второй части и только тогда файл начал создаваться, а до этого вторая часть отрабатывала (или нет ?) без каких-либо ошибок, но файл не создавался ?

что-то здесь не так. насколько существенна разница между тем скриптом, который не работал и тем, который вы здесь привели ?
 

Gremboloid

инженера Гр...
поняли правильно

привел исходный вариант (не рабочий)
разница с рабочим в том что первую часть я взял в /*... */
 

McSimm

Новичок
неплохо бы выяснить каким именно путем следует скрипт, когда файл не создается - первый exit, второй, через fclose() или вообще не доходит до fopen :)

а так - "мистика", на нехватку прав не похоже, на время выполнения тоже.

С linux тесно не общаюсь, только с FreeBSD, может какая-то "особенность"? попробуйте после цикла удаления clearstatcache() выполнить, хотя это и глупость. :)
 

Gremboloid

инженера Гр...
тоже думаю что мистика. Под виндой все работает. Думаю, в скором времени, на солярке проверить.
 
Сверху