Prodej projektu Duchod.cz - SLEVA
Zobrazují se odpovědi 1 až 7 z 7

Skript pro sledování FTP kvóty

  1. Ahoj,

    neví někdo jakou použít funkci pro ro sledování FTP kvóty na hostingu? Na podpoře mi neporadili a prý o žádném skriptu neví. To mi nevadí, napíšu si ho sám, ale potřebuju asi nakopnout. Vím, že kvótu uvidím v Adminu, ale jedná se mi o automatizaci procesu. CRON zjistí zaplnění více než x% a něco začne mazat. Nechci tam koukat každý týden 2x.

    Použil jsem funkci disk_free_space() http://php.net/manual/pl/function.disk-total-space.php, ale po převodu na GB dostávám diskovou kapacitu 114GB, což je nesmysl, protože máme tarif na 5GB. Cesta je ale prý správná. Jako kdyby to ale měřilo třeba celý disk, nevím.

    PHP kód:
    $free disk_free_space('/www/mydomain.cz/mydomain.cz/');

    echo 
    'Volné místo: ' round($free pow(10, -9), 2) . ' (GB)'

  2. Co se právě děje na Webtrhu?
  3. Tak na webhostingu nemáš svoj hosting na vlastnom "filesystem or disk partition". Preto tá funkcia funguje nesprávne.
    Čo tak to ísť tou opačnou cestou, keď vieš že máš tarif 5GB, tak si radšej spočítať veľkosť všetkých súborov, ktoré máš na FTP a to odrátať od tých 5GB?

  4. ahoj, to asi tak lahko nepojde..

    Na pracu s FTP mozes pouzit: http://php.net/manual/en/book.ftp.php

    a po pripojeni posielat prikazy: http://php.net/manual/en/function.ftp-exec.php

    Na windowse vedel prikaz LIST vypisat volne miesto v bajtoch.. ale teraz som skusil na linuxe, a tu uz nejde..

    Skus ist skor radsej tymto smerom.. Pri disk_free_space vidis totiz cely disk (oddiel).

    edit: Alebo ako pise Matúš .. rekurzivne prejst vsetky adresare a spocitat ich velkost..

  5. co to máte za provozovatele, když máte kvotu na FTP? Naši klienti, kteří mají web u nás, mají neomezený lib a žádný skeript na FTP kvotu nepotřebují.

  6. Já bych to obešel tak že bych si spočítal velikost všech souborů a od toho bych odečetl zadanou kvótu.

    Tady jsem ti napsal takový jednoduchý script, který dokáže spočítat a odečíst velikost souborů

    PHP kód:
    /**
     * @var string|int|null $totalSpace
     *      string = Maximální prostor na hostingu (50GB, 30kB)
     *      null = Funkce vrátí obsazený prostor (nikoliv volný)
     *
     * @var string $rootDirectory Výchozí složka z které se má počítat obsazenost
     *
     * @var bool $humanReadable   Výstup převést do čitelné podoby (MB, GB, TB,...)
     *
     * @var int $precision        Zaokrohlení na počet desetinných míst
     *
     * @return string|int Volný prostor / Obsazený prostor
     *
     * @throws Exception V případě chyby
     */
    function getFreeSpace($totalSpace$rootDirectory$humanReadable true$precision 2)
    {
        
    $bytesTotal 0;
        
    $path realpath($rootDirectory);

        if (
    $path !== false && $path !== '' && file_exists($path))
        {
            
    $recursiveDirectoryIterator = new RecursiveDirectoryIterator($pathFilesystemIterator::SKIP_DOTS);
            
    $recursiveIteratorIterator = new RecursiveIteratorIterator($recursiveDirectoryIterator);

            foreach (
    $recursiveIteratorIterator as $object)
            {
                
    $bytesTotal += $object->getSize();
            }
        }

        
    $units = ['B''kB''MB''GB''TB''PB''EB''ZB''YB'];

        
    $isNegative false;

        if (
    $totalSpace !== null)
        {
            
    $number substr($totalSpace0, -2);
            
    $suffix strtoupper(substr($totalSpace, -2));
            if (
    is_numeric($suffix[0]))
            {
                
    $bytesTotal preg_replace('/[^\D]/'''$totalSpace) - $bytesTotal;
            }

            
    $exponent array_flip($units)[$suffix] ?? null;
            if (
    $exponent === null)
            {
                throw new 
    Exception('Spatne zadany format dat');
            }

            
    $bytesTotal $number * (1024 ** $exponent) - $bytesTotal;

            if (
    $bytesTotal 0)
            {
                
    $isNegative true;
                
    $bytesTotal *= -1;
            }
        }

        if (
    $humanReadable === false)
        {
            return 
    $bytesTotal;
        }

        
    $step 1024;

        
    $i 0;
        while ((
    $bytesTotal $step) > 0.9)
        {
            
    $bytesTotal /= $step;
            
    $i++;
        }

        
    $output '';
        if (
    $isNegative)
        {
            
    $output .= '-';
        }

        
    $output .= round($bytesTotal$precision) . $units[$i];

        return 
    $output;
    }

    echo 
    getFreeSpace('50MB'__DIR__

  7. Citace Původně odeslal BBCUK Zobrazit příspěvek
    co to máte za provozovatele, když máte kvotu na FTP? Naši klienti, kteří mají web u nás, mají neomezený lib a žádný skeript na FTP kvotu nepotřebují.
    Uznávám, že jsem se špatně vyjádřil a z toho pramení to, že jste me patrně nepochopil. Neměl jsem na mysli FTP kvótu pro přenos dat, ale uložiště na disku. A to omezuje většina firem. Je jasné, že vás tam nenechají nahrávat cokoli až do zblbnutí.

  8. Šel jsem na to od konce, bylo to lepší. Tj. spočtu obsazenou kapacitu a poté odečtu od přidělené kvóty. Díky za nakopnutí, už mi to jede.

Hostujeme u Server powered by TELE3