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:
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
du -hlsc /_network/ATE01
Es urgente por el tema de que sin esto, se pueden saltar los limites de disco y petar el sistema
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?
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?
STR=$(du -hlsc /_network/ATE01)
if [STR -gt (1500*1024)] echo 'test'; fi
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
if [ $(du -sk /_network) -gt "1500" ]; then
echo "Sobrepasa"
else
echo "No sobrepasa"
fi
CALC=$(du -sk /_network)
if [ $CALC -gt "1500" ]; then
echo "Sobrepasa"
else
echo "No sobrepasa"
fi
Vi que creaste otro hilo donde lo has solucionado, lo mio era a forma de referencia, lo hice en un apurito :P