Foros del Web » Programando para Internet » PHP »

calcular espacio de un directorio virtual...

Estas en el tema de calcular espacio de un directorio virtual... en el foro de PHP en Foros del Web. amos a ver, tengo linux, apache y un panel de control de servidor llamado ispmanger (todo OpenSource...) bien, administrando 'virtual hosts', puedo asignar el espacio ...
  #1 (permalink)  
Antiguo 02/08/2004, 11:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
calcular espacio de un directorio virtual...

amos a ver, tengo linux, apache y un panel de control de servidor llamado ispmanger (todo OpenSource...)

bien, administrando 'virtual hosts', puedo asignar el espacio de cada nuevo vhost. Y con cgi puedo ver el espacio que queda por llenar, hasta aqui bien, el problema viene cuando lo quiere realizar mediante php. Si yo pongo:

$total = disk_total_space('/');
$libre = disk_free_space('/');

o

$total = disk_total_space('/vhosts/dominio.com/htdocs');
$libre = disk_free_space('/vhosts/dominio.com/htdocs');

la información final es siempre la misma... la pregunta, es: como puedo conocer en php el espacio que tiene asignado un vhost y cuanto espacio esta ocupando?
  #2 (permalink)  
Antiguo 02/08/2004, 13:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En teoría debería mostrar bien ese valor (tal vez te falte el / final de la ruta para indicar directorio . .pruebalo)

A "malas" podrías hacer algo como lo que se propone aquí:

Cita:
nospam at jusunlee dot com (30-Jul-2003 02:45)

The above is only useful if you need to find the total used space of a mountpoint. If you are looking for a script that determines the total used space of a directory and all of its contents (including subdirectories), heres a recursive function that should do the work.
<?
$total = 0;
function spaceUsed($dir) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (is_dir($dir.$file) && $file != '.' && $file != '..') {
spaceUsed($dir.$file.'/');
} else {
$GLOBALS['total'] += filesize($dir.$file);
}
}
closedir($dh);
}
}
}
spaceUsed('/path/to/directory/');
$total /= 1048576;
echo round($total, 1).' mb';
?>
Un saludo,
  #3 (permalink)  
Antiguo 02/08/2004, 14:20
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
Cita:
Iniciado por Cluster
En teoría debería mostrar bien ese valor (tal vez te falte el / final de la ruta para indicar directorio . .pruebalo)

A "malas" podrías hacer algo como lo que se propone aquí:



Un saludo,

Durante las pruebas tambien intente el poner el / final y tampoco funcionaba...

Utilizaria el codigo que me propones, el inconveniente es que para cada dominio virtual tendre que asignar manualmente el tamaño que tiene adjudicado, luego hacer el bucle (que no es ligero, asi que me puedo olvidar de utilizarlo por ejemplo en cabeceras de paginas que se ejecuten siempre) y finalmente restarlo. Vamos, que pierdo la posibilidad de automatización. Lo dejaremos como ultimo recurso.

De todas formas gracias, a ver si alguien conoce algun metodo.
  #4 (permalink)  
Antiguo 02/08/2004, 16:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y por comando del S.O.?

Lanzado dese PHP vía exec() o system() para obtener su resultado ..

Un saludo,
  #5 (permalink)  
Antiguo 03/08/2004, 06:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 102
Antigüedad: 14 años, 4 meses
Puntos: 0
podria ser una buena solución, probare a ver que sale... gracias por la ayuda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:08.