Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Skript pro sledování FTP kvóty

David Musil
verified
rating uzivatele
(68 hodnocení)
8. 11. 2018 11:10:54
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.
$free = disk_free_space('/www/mydomain.cz/mydomain.cz/');
echo 'Volné místo: ' . round($free * pow(10, -9), 2) . ' (GB)';
8. 11. 2018 11:10:54
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373617
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?
8. 11. 2018 11:26:23
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373616
ne
verified
rating uzivatele
(22 hodnocení)
8. 11. 2018 11:28:24
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..
8. 11. 2018 11:28:24
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373615
Hatsumeika
verified
rating uzivatele
8. 11. 2018 11:33:06
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í.
8. 11. 2018 11:33:06
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373614
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ů
/**
* @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($path, FilesystemIterator::SKIP_DOTS);
$recursiveIteratorIterator = new RecursiveIteratorIterator($recursiveDirectoryIterator);
foreach ($recursiveIteratorIterator as $object)
{
$bytesTotal += $object->getSize();
}
}
$units = ;
$isNegative = false;
if ($totalSpace !== null)
{
$number = substr($totalSpace, 0, -2);
$suffix = strtoupper(substr($totalSpace, -2));
if (is_numeric($suffix))
{
$bytesTotal = preg_replace('//', '', $totalSpace) - $bytesTotal;
}
$exponent = array_flip($units) ?? 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;
return $output;
}
echo getFreeSpace('50MB', __DIR__)
8. 11. 2018 12:45:18
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373613
David Musil
verified
rating uzivatele
(68 hodnocení)
8. 11. 2018 13:32:20
Napsal BBCUK;1494691
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. 11. 2018 13:32:20
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373612
David Musil
verified
rating uzivatele
(68 hodnocení)
8. 11. 2018 17:12:29
Š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.
8. 11. 2018 17:12:29
https://webtrh.cz/diskuse/skript-pro-sledovani-ftp-kvoty/#reply1373611
Pro odpověď se přihlašte.
Přihlásit