No funciona Scrip, Ayuda
Publicado por Jose (4 intervenciones) el 02/12/2013 17:04:21
Saludos,
estoy realizando un shell script y no consigo solucionarlo.
Este es el shell que necesito:
para cada usuario que hay registrado en el sistema el número de objetos (directorios, archivos, …) que le pertenecen, cuál es el objeto más antiguo y el más reciente, el más grande y el más pequeño, el número total de bytes que ocupan los objetos, etc.
Esto es lo que he realizado y no funciona:
Gracias
estoy realizando un shell script y no consigo solucionarlo.
Este es el shell que necesito:
para cada usuario que hay registrado en el sistema el número de objetos (directorios, archivos, …) que le pertenecen, cuál es el objeto más antiguo y el más reciente, el más grande y el más pequeño, el número total de bytes que ocupan los objetos, etc.
Esto es lo que he realizado y no funciona:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
#obtiene el usuario root y lo guardo en el archivo "listadoUsuarios"
cut -d: -f 1,6 /etc/passwd | grep ^'root:' >listadoUsuarios
#obtiene los usuarios con id igual o superior a 1000 y los guarda en el archivo "listadoUsuarios"
cut -d: -f 1,3,6 /etc/passwd | awk -F: '{if($2>=1000) print $1 ":"$3}' >>listadoUsuarios
#recorre todos los usuarios
cat listadoUsuarios | while read usuario;
do
username='echo $usuario | cut -d: -f1'
path='echo $usuario | cut -d: -f2'
#inicializo las variables
discoUsado=0
archivoPequeno=""
archivoGrande=""
#si el path de usuario existe
if [ -d "$path" ]; then
#obtengo el tamaño del mismo
discoUsado='du -sh $path | awk '{print $1}''
#obtengo el archivo mas pequeno
archivoPequeno=' find $path -type f -printf "%s %P\n" | sort -n | head -1'
#obtengo el archivo mas grande
archivoGrande=' find $path -type f -printf "%s %P\n" | sort -n | tail -1'
else
discoUsado="No existe directorio"
fin
#muestro el resultado
echo $username
echo '\tpath:\t\t\t' $path
echo '\tutiliacion de disco:\t' $discoUsado
echo '\tarchivo mas pequeno:\t' $archivoPequeno
echo '\tarchivo mas grande:\t' $archivoGrande
done
Gracias
Valora esta pregunta


0