У меня есть FTP-сервер, и мой оператор обновляет его вручную через страницу FTP, и я точно не знаю, когда он это сделает.
Я хочу написать скрипт, чтобы определить, какая папка была изменена, и вернуть путь к новой папке, созданной или измененной.
Надо сказать, что он обычно создает новую папку по какому-то пути или удаляет их.
Сейчас через ftp_nlist
Я рекурсивно читаю все файлы и папки, а затем проверяю путь в базе данных, если он новый, я сохраняю его или удаляю эту строку из базы данных.
Пожалуйста, поделитесь своей идеей и кодом для лучшей оценки.
Вы можете проверить время последнего изменения папок и файлов с помощью bash-скрипта. find
, Вот несколько примеров php:
exec('find . -mtime -1 -type d', $output);
// $output: list of folders modified within 24 hours
unset($output);
exec('find . -mtime -1 -type f', $output);
// $output: list of files modified within 24 hours
unset($output);
exec('find . -mtime +0 -type f', $output);
// $output: list of files modified greater than 24 hours
unset($output);
Вы должны проверить эти параметры -amin
, -atime
, -cmin
, -ctime
, -mmin
, а также -mtime
тоже.
-amin n
File was last accessed n minutes ago.
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has
to have been accessed at least two days ago.
-cmin n
File's status was last changed n minutes ago.
-ctime n
File's status was last changed n*24 hours ago. See the
comments for -atime to understand how rounding affects the
interpretation of file status change times.
-mmin n
File's data was last modified n minutes ago.
-mtime n
File's data was last modified n*24 hours ago. See the
comments for -atime to understand how rounding affects the
interpretation of file modification times.
Других решений пока нет …