Почему мой паук PHP / FTP неправильно вычисляет использование диска примерно на 15%?

У меня есть маршрутизатор с портом USB и внешним USB-дисководом, и я хочу использовать его для резервного копирования.

К сожалению, маршрутизатор использует SMBv1, который небезопасен, и Windows отказывается подключаться. Маршрутизатор имеет возможность FTP к диску, но набор инструкций ограничен. FTP не предоставляет никакой df (дисковой файловой системы) или подобной возможности для мониторинга использования диска. Команда LIST и, следовательно, PHP ftp_rawlist () не будут работать рекурсивно. ftp_rawlist () предоставляет точные размеры файлов, но размеры каталогов неверны.

Я пытаюсь «спайдер» диск через FTP с помощью ftp_rawlist ()

Этот скрипт PHP, кажется, обеспечивает необходимую рекурсию, но расчеты пространства на 15% меньше, чем на самом деле. Что мне не хватает?

$directories = array('/volume1') ;
$sizetotal=0;

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

while (count($directories)) {
$curdir = array_shift($directories);
$directorylisting = ftp_rawlist($conn_id, $curdir );

foreach ($directorylisting as $line) {
//substr ( string $string , int $start [, int $length ] ) : string
$ftype = substr( $line , 0,1);
$fsize= substr( $line , 29, 13);
$fname= substr( $line , 56);
if ($ftype == '-') {
$sizetotal += (int)$fsize;
} elseif ($ftype == 'd') {
array_push($directories, $curdir  ."/" . $fname );
$sizetotal += $fsize;
echo $curdir  ."/" . $fname ."\t" . $fsize . "\r\n";
} else {
echo "not a file or directory! probably a link.\r\n";
}
}
}
echo $sizetotal . "\r\n";


0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru