[Solucionado] No me detecta el tamaño del directorio correctamente

Iniciado por venadHD, 2 Septiembre 2015, 17:17 PM

0 Miembros y 1 Visitante están viendo este tema.

venadHD

Bueno, hace tiempo postee un tema para saber y ejecutar un comando segun el tamaño de un directorio, que el problema está en que no calcula el tamaño del directorio+sub-directorios, solo de los archivos que hay en el, y la cosa es que quiero que el comando de detecte el tamaño de la carpeta en la que le marqué, y ejecute el comando

El comando que tenia era este:
Código (bash) [Seleccionar]
find /_network/ATE01 -type d -size +1500M -exec chmod 000 -R /_network/ATE01/mods/deathmatch/resource-cache \;

Encontre un comando, en el que me devuelve el valor correcto, pero no creo que me sirva para hacer chmod
Código (bash) [Seleccionar]
du -hlsc /_network/ATE01

Es urgente por el tema de que sin esto, se pueden saltar los limites de disco y petar el sistema

someRandomCode

podrias hacerlo con un pequeño snippet en bash que dijera if [ $1 -gt "1500" ] comando;
donde $1 es la salida de du..
Igualmente estoy leyendo el manpage de find, en cuanto encuentre algo te aviso.. que tipo de share es? nfs? ftp? samba?

venadHD

Cita de: someRandomCode en  2 Septiembre 2015, 17:52 PM
podrias hacerlo con un pequeño snippet en bash que dijera if [ $1 -gt "1500" ] comando;
donde $1 es la salida de du..
Igualmente estoy leyendo el manpage de find, en cuanto encuentre algo te aviso.. que tipo de share es? nfs? ftp? samba?

No entiendo eso de 'share', donde lo ejecuto es en cron. Si lo pusiera de esta forma sería lo mismo que una snippet?

Código (bash) [Seleccionar]
STR=$(du -hlsc /_network/ATE01)
if [STR -gt (1500*1024)] echo 'test'; fi

venadHD

Probé con este script, pero nada, error de variable, error de if, vamos, de todo.. made in china
La cosa es que creo que necesito que 'du' me returne en numero, sin el nombre del directorio, imagino que ahi reside el problema, y no sé como hacerlo
Código (bash) [Seleccionar]

if [ $(du -sk /_network) -gt "1500" ]; then
echo "Sobrepasa"
else
echo "No sobrepasa"
fi

Código (bash) [Seleccionar]
CALC=$(du -sk /_network)
if [ $CALC -gt "1500" ]; then
echo "Sobrepasa"
else
echo "No sobrepasa"
fi

someRandomCode

Vi que creaste otro hilo donde lo has solucionado, lo mio era a forma de referencia, lo hice en un apurito :P