Tengo que realizar un script en bash para linux que haga esto:
- Script pide unos parametros:
-El primer parametro insertado el programa lo considera megabytes
-Los parametros siguientes el programa lo considerara usuarios o grupos
- El mismo programa borrara todos los archivos del directorio "actual" que se sobrepase del tamaño indicado al principio y cuyo usuario o grupo este en la lista d eparametros pasados
Condiciones:
- Si el primer parametro no es un numero entero ---> msg error y script detenido
- Se creara un archivo de texto "borrados.txt" con nombre tamaño y propietario de los archivos borrados
Necesitaria alguna idea para empezar este script, mas o menos la tengo, pero como le digo por ejemplo que el primer parametro sea considerado como MB?
Muchas gracias
Cita de: slyfx en 19 Marzo 2014, 19:33 PMcomo le digo por ejemplo que el primer parametro sea considerado como MB?
¿Vas a especificar el lenguaje que estás utilizando o estás esperando a que alguien lo adivine?, si no importa el lenguaje al menos aclara ese detalle..
Saludos
[OFFTOPIC]PD: Cuanta falta hace el uso de las plantillas...
[OFFTOPIC]
Cita de: Eleкtro en 19 Marzo 2014, 20:33 PM
¿Vas a especificar el lenguaje que estás utilizando o estás esperando a que alguien lo adivine?, si no importa el lenguaje al menos aclara ese detalle..
Saludos
[OFFTOPIC]
PD: Cuanta falta hace el uso de las plantillas...
[OFFTOPIC]
Editado, sorry
busca informacion acerca del comando "find", de por si se puede usar para eliminar archivos de mas de cierto tamaño
Cita de: -Myx- en 20 Marzo 2014, 06:15 AM
busca informacion acerca del comando "find", de por si se puede usar para eliminar archivos de mas de cierto tamaño
Muchas gracias esas son las ideas que necesito, es que realmente no sabia mucho como empezar, te lo agradezco
si llegas a encontrar tu solucion, estaria bien que la compartieras con el foro. Quizas alguien mas lo pueda usar en el futuro
Cita de: -Myx- en 22 Marzo 2014, 07:46 AM
si llegas a encontrar tu solucion, estaria bien que la compartieras con el foro. Quizas alguien mas lo pueda usar en el futuro
Pues sí, para quien lo quiera usar (o ayudar) de momento tengo esto:
#!/bin/bash
clear
echo "Escribe el numero para los Mb:"
read numero
typeset -r __TRUE=0
typeset -r __FALSE=1
function isNumber {
typeset TESTVAR="$(echo "$numero" | sed 's/[0-9]*//g' )"
[ "${TESTVAR}"x = ""x ] && return ${__TRUE} || return ${__FALSE}
}
isNumber $numero
if [ $? -eq ${__TRUE} ] ; then
echo "Es un numero entero y puedes seguir"
echo "Pulsa un boton para continuar ..."
read
rm borra
rm borrados.txt
var1='si'
echo "Has escogido: " $numero " Mb"
echo "Pulsa Enter para continuar ..."
read
while [ "$var1" != "no" ]
do
echo "----------------------------------"
echo "Hora de insertar usuarios y grupos: "
echo "----------------------------------"
echo "Inserta el usuario:"
read usuario
echo "Inserta el grupo:"
read grupo
echo "Su busqueda ha sido de:"
echo "Tamaño:" $numero
echo "Usuario:" $usuario
echo "Grupo:" $grupo
find ./ -type f -size +$numero -user $usuario >> borra
echo "Quieres continuar (si/no)?"
read var1
done
#cat fichero | awk -F":" '(print "find ./ -type f -size +"$1")'
for i in nombre
do
nombre2= `ls -la $i |awk -F " " '(echo $9)'`
propietario= `ls -la $i |awk -F " " '(echo $3)'`
tamano= `ls -la $nombre |awk -F " " '(echo $5)'`
echo "El archivo: " $nombre2 "como propietario a: " $propietario " de tamaño " $tamano >> borrados.txt
rm -rf $i
done
else
echo "Este numero no es un entero o no es un numero"
echo -e "Saliendo del programa ..."
sleep .80
fi
De momento este codigo comprueba que el primer numero introducido es entero y es numero.
Usara este primer numero introducido para determinar el tamaño en Mb de lo que debera buscar y borrar, los siguientes parametros introducidos serán usuarios o grupos, que usará para indicar al archivo txt quien ha sido el que ha borrado ese archivo superior a "x" mb, y bueno viene siendo un poco lo que pedía al principio, aun le falta darle un poco de giro a la logica pero lo voy planteando a ver que saco, porque todavía falla :rolleyes:
Editado: Había puesto un código que no era