Administración de aulas de informática con Linux (2 de 3): script para ejecutar órdenes en todos los ordenadores
Post date: 17-May-2012 12:14:44
Queremos hacer un script que coja como argumento una orden y la ejecute en todos los ordenadores de los alumnos.
Para conseguirlo:
1. En el ordenador del profesor, iniciamos una sesión en un terminal como root.
1. En el ordenador del profesor, iniciamos una sesión en un terminal como root.
2. Abrimos un archivo para editar, con el comando nano.
2. Abrimos un archivo para editar, con el comando nano.
nano ejecuta_todos.sh
3. Copiamos el siguiente contenido
3. Copiamos el siguiente contenido
#!/bin/bash
let COUNTER=1
for i in 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
do
echo "________________________________ "
echo "Ordenador "$COUNTER "(Dirección IP 10.124.4."$i")"
ssh 10.124.4.$i $1
echo "________________________________ "
echo " "
let COUNTER=COUNTER+1
done
nota: los ordenadores de los alumnos tienen la dirección 10.124.4.XX, con XX que va de 41 a 55. Cambiar de acuerdo a los ordenadores del aula.
4. Cambiamos los permisos de ejecución
4. Cambiamos los permisos de ejecución
chmod 755 ejecuta_todos.sh
Ya está. Para probarlo, ejecutamos por ejemplo
./ejecuta_todos.sh "uname -a"
La salida del programa será
root@prof:~# ./ejecuta_todos.sh "uname -a"
________________________________
Ordenador 1 (Dirección IP 10.124.4.41)
Linux 1I 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 19:00:26 UTC 2011 i686 GNU/Linux
________________________________
________________________________
Ordenador 2 (Dirección IP 10.124.4.42)
ssh: connect to host 10.124.4.22 port 22: No route to host
________________________________
________________________________
Ordenador 3 (Dirección IP 10.124.4.43)
Linux 3I 2.6.35-28-generic #50-Ubuntu SMP Fri Mar 18 19:00:26 UTC 2011 i686 GNU/Linux
________________________________
etc.