[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Carlos Barba wrote: > > alguno de ud. me podria hechar la mano con un pequeño shell que cree > 3 directorios en cada home de un usuario y copie algunos archivos en dos de > esos directorios. > > no tengo idea ni de como empezarlo. > > gracias. Haber... si esto te da una idea cat /etc/passwd | cut -d: -f6 > /tmp/home.usuarios con esto tomas de la tabla de passwords todos tus usuarios y cortas el campo donde se especifica su directorio hogar. Si quieres puedes agregar un grep para seleccionar a ciertos usuarios, yo divido las cuentas por departamento o matricula asi tengo /home/dep1 /home/dep2 por ejemplo entonces para tomar a los del dep1 es: cat /etc/passwd | cut -d: -f6 | grep /home/dep1 > /tmp/home.dep1.usuarios se queda un listado del directorio hogar de todos los usuarios en /tmp/home.usuarios mas o menos asi /home/dep1/usuario1 /home/dep1/usuario2 /home/dep1/usuario3 ... paso siguiente es tomar a cada uno de esos directorios y mandarlo a otro shell para que le copie lo que quieres, esto lo haria asi: cat /tmp/home.usuarios | xargs -i 2_shell.sh {} el xargs me sirve para mandar linea por linea al segundo shell que tomara cada linea como un argumento de entrada. El segundo shell se puede ver asi: mkdir "$1"/directorio1 mkdir "$1"/directorio2 mkdir "$1"/directorio3 cp /path/de/los/archivos/* "$1"/directorio1 cp /path/de/los/archivos/* "$1"/directorio2 ## no olvidemos darle al usuario permisos para esos archivos (si es que se les tiene que dar) chown -R "`echo $1 | cut -d/ -f3`" "$1" ## asumiendo que el nombre del usuario esta en el campo 3 del directorio (/home/dep1/usuario) delimitado por la diagonal "/" y digamos que se les tiene que dar ciertos permisos chmod 644 "$1"/* como esto lo extraje de scripts que tengo aqui, que estan mucho mas extensos, tal vez falle por ahi que no en todos los casos sea necesario poner comillas para uzar la variable ("$1"). Ahora resumiendo un poco... ########################## inicia script1.ksh ####################### #!/usr/bin/ksh cat /etc/passwd | cut -d: -f6 | grep /home/dep1 > /tmp/home.dep1.usuarios cat /tmp/home.dep1.usuarios | xargs -i script2.ksh {} rm /tmp/home.dep1.usuarios ########################## termina script1.ksh ###################### ########################## inicia script2.ksh ####################### #!/usr/bin/ksh if [ ! -d "$1" ] then mkdir "$1"/directorio1 mkdir "$1"/directorio2 mkdir "$1"/directorio3 cp /path/de/los/archivos/* "$1"/directorio1 cp /path/de/los/archivos/* "$1"/directorio2 chown -R "`echo $1 | cut -d/ -f3`" "$1" chmod 644 "$1"/* fi ########################## termina script2.ksh ###################### NOTA: No es necesario que sea kornshell, aunque no lo he probado en otro shell Bueno... espero te sea de utilidad, ademas tambien si alguien que vea algun error me lo haga saber... -- Eduardo Pascual Martinez Administrador LCE-IEE&M Tel: (5)326-5555 ext: 3108 Premio Nacional de Calidad 1998, 1999: A~o de la Confianza en el Campus Estado de Mexico, Tecnologico de Monterrey.