elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  copias de seguridad para todos los usuarios del sistema con determinado uid
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: copias de seguridad para todos los usuarios del sistema con determinado uid  (Leído 459 veces)
Berlo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
copias de seguridad para todos los usuarios del sistema con determinado uid
« en: 19 Junio 2017, 05:01 »

Hola muy buenas, estoy intentando hacer un script de copias de seguridad para todos los usuarios del sistema con determinado uid pero en el bucle for se repite siempre la misma copia de seguridad de un usuario no pasa al siguiente en el array a ver si me podeis ayudar



Código
  1. #! /bin/bash
  2.  
  3. if [ $# -ne 2 ] || [ $1 != "-r" ] && [ $1 != "-c" ] || [ `expr index $2 \/` -ne 1 ] ; then
  4.  
  5.        echo "Los parametros admitidos son los siguientes: ";
  6.        echo "Primer parametro debe ser -c (crea copia de seguridad) o -r (restaura copia de seguridad)";
  7.        echo "Segundo parametro debe ser direccionamiento absoluto al lugar donde realizar la accion";  
  8.        exit;
  9.  
  10. fi
  11.  
  12. if [ $1 == "-c" ]; then
  13.  
  14. cont=0;
  15. echo "busco los que son mayores de uid=1000";
  16. for i in $(cut -d: -f 1 /etc/passwd); do
  17.        if [ `id -u $i` -gt 999 ] ; then
  18.                usuario[$cont]=$i;
  19.                cont=$((cont+1));
  20.        fi
  21. done
  22.  
  23. rm /tmp/copiac
  24.  
  25. conta=0;
  26. echo "busco los usuarios en el fichero shadow";
  27. while [ $conta -lt ${#usuario[@]} ] ; do
  28.        grep ${usuario[$conta]} /etc/shadow >> /tmp/copiac;
  29.        conta=$((conta+1));
  30. done
  31.  
  32. cont=0;
  33. unset usuario;
  34. echo "elimino los que no tienen contraseña";
  35. for i in $(sed -e '/:\*:/d' /tmp/copiac | cut -d : -f 1); do
  36.        usuario[$cont]=$i;
  37.        cont=$((cont+1));
  38. done
  39.  
  40. echo ${usuario[@]};
  41.  
  42. for i in ${usuario[@]}; do
  43. echo $i
  44.        if [ -d $(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6) ] ; then
  45.                ruta=$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6);
  46.                echo $ruta ;
  47.                cd $ruta ;
  48.                pwd ;
  49.                tar -czvf $2/${usuario[$i]}.tgz ./;
  50.        fi
  51. done
  52.  
  53.  
  54. echo "creando el fichero usuarios";
  55.  
  56. for i in ${usuario[@]} ; do
  57.        echo ${usuario[$i]}:$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 5):$(grep ${usuario[$i]} /etc/shadow | cut -d : -f 2):$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6):$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 7) >> $2/usuarios ;
  58.        echo " creado " ;
  59. done
  60.  
  61.  
  62.  
  63. fi
  64.  
  65. if [ $1 == "-r" ]; then
  66.        ./copiar $2;
  67. fi
  68.  


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex


« Última modificación: 19 Junio 2017, 05:03 por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines