为什么我的PHP / FTP Spider会误计算磁盘使用率约15%?

时间:2019-01-31 20:34:36

标签: php ftp backup

我有一个带有USB端口和外部USB磁盘驱动器的路由器,我想将其用于备份。

不幸的是,路由器使用了不安全的SMBv1,Windows拒绝连接。路由器具有到驱动器的FTP功能,但指令集有限。 FTP不提供任何df(磁盘文件系统)或类似功能来监视磁盘利用率。 LIST命令以及PHP ftp_rawlist()不会递归工作。 ftp_rawlist()确实提供了准确的文件大小,但是目录大小是错误的。

我正在尝试使用ftp_rawlist()通过FTP“蜘蛛化”磁盘

此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 个答案:

没有答案