получение микросекунд или миллисекунд в filemtime

scooterok

Новичок
Приветствую!
Есть ли какой-то способ получить последние изменение файла не только:
date("YmdHis", filemtime($folder.'/'.$file))

а и в микросекундах или миллисекундах...

например:
date("YmdHisu", filemtime($folder.'/'.$file))

Но "u" в date всегда будет выдавать 000000!

Нужно это для поиска первого измененного файла при атаках на сайт, например взлом популярных движков...
Сейчас список выводит последнюю дату изменения как год, месяц, день, час, минуты, секунды и в списке есть в одно и тоже время около 50-ти файлов которые подверглись взлому.
Хотелось бы среди них найти первого, кого посмели взломать :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
На php хрен его знает, а так ls -lt *.php --full-time
 

scooterok

Новичок
Вроде нельзя, так как в файловую систему записывается только по секунды, остальное округляется...
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
ОС какая у тебя? ФС какая на ней?

Если ext4 - то можно
 

fixxxer

К.О.
Партнер клуба
PHP:
$ php -a
Interactive shell

php > $filename = ".env"; $f = escapeshellarg($filename);
php > $stat = `/usr/bin/stat --format %y $f`; var_dump($stat);
string(36) "2015-05-07 19:32:42.412000000 +0300
"
Строку уж сам распарсить сможешь?
 

scooterok

Новичок
Что-то не получается получить информацию о файле...
При команде php -a выводит - "Interactive mode enabled", после чего больше ничего не выводит...
Писал так:
$filename = "полный путь к файлу";
$f = escapeshellarg($filename);
$stat = `/usr/bin/stat --format %y $f`;
var_dump($stat);

точно также и при запросе скриптом:
$out = shell_exec('php -a');
$out.= shell_exec('$filename = "полный путь к файлу";');
$out.= shell_exec('$f = escapeshellarg($filename);');
$out.= shell_exec('$stat = `/usr/bin/stat --format %y $f`;');
$out.= shell_exec('var_dump($stat);');
print $out;

Что я не так делаю? :)
 

fixxxer

К.О.
Партнер клуба
facepalm

$filename = ".env"; $f = escapeshellarg($filename);
$stat = `/usr/bin/stat --format %y $f`; var_dump($stat);

это код!

php -a это интерактивный режим. я туда ввел этот код и тебе скопипастил.
 

scooterok

Новичок
Хорошо, а вот запускаю в пхп файле скрипт вида:
$out = shell_exec('stat --format %y '.escapeshellarg($filename));
print $out;

результат получается вот такой:
2013-09-30 22:39:23.000000000 +0400

Почему?
 

scooterok

Новичок
Еще вот интересный вопрос.
Какая разница между Modify и Change?
И почему такая большая разница, например Modify файла 2014-01-15 02:40:39 и Change того же файла 2015-05-13 12:04:11 ?
Судя по всему Change актуальнее освещает время последнего изменения файла?
Тогда почему известная многим программа WinSCP показывает по полю Modify ?
Буду очень признателен :)
 

AnrDaemon

Продвинутый новичок
modify - последнее изменение содержимого файла.
change - последнее изменение метаданных файла.
Естественно, не будучи дурой, WinSCP показывает последнее время изменения содержимого. Мало кому интересно, когда у файла последний раз менялись права доступа.
 

scooterok

Новичок
modify - последнее изменение содержимого файла.
change - последнее изменение метаданных файла.
Естественно, не будучи дурой, WinSCP показывает последнее время изменения содержимого. Мало кому интересно, когда у файла последний раз менялись права доступа.
Спасибо, действительно)
 
Сверху