Advertisement
sergio_educacionit

backup.sh

Apr 19th, 2024
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.60 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. fecha=$(date +%H-%M-%S)
  4.  
  5. # servidor destino de backups
  6. server=192.168.0.88
  7.  
  8. # usuario remoto
  9. backupuser="sambaserver"
  10.  
  11.  
  12. # si el script recibe el argumento 'ssh-key'
  13. # se generan el par de claves 'ssh'.
  14.  
  15. if [ "$1" == "ssh-key" ]; then
  16.  
  17.     ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
  18.  
  19.     ssh-copy-id -i $HOME/.ssh/id_rsa.pub $backupuser@$server
  20.  
  21.     exit 0
  22.  
  23. # si recibe como argumento 'gpg-key'
  24. # entonces genera un par de claves gpg
  25. # en este caso sin contraseña
  26.  
  27.  
  28. elif [ "$1" == "gpg-key" ]; then
  29.  
  30.     gpg --batch --gen-key <<EOF
  31. %no-protection
  32. Key-Type: RSA
  33. Key-Length: 2048
  34. Subkey-Type: RSA
  35. Subkey-Length: 2048
  36. Name-Real: Your Name
  37. Name-Email: educacionit@$HOSTNAME
  38. Expire-Date: 0
  39. %commit
  40. EOF
  41.  
  42. # se exporta la llave publica
  43. gpg --export -a "educacionit@$HOSTNAME" > educacionit.$HOSTNAME.pub
  44.  
  45. # se envia la llave publica al servidor de backup
  46. scp educacionit.$HOSTNAME.pub $backupuser@$server:~/
  47.  
  48. # se le envia el comando al servidor de backup mediante ssh
  49. # para que importe la clave privada que le enviamos.
  50. #
  51. ssh $backupuser@$server gpg --import educacionit.$HOSTNAME.pub
  52.  
  53. exit 0
  54.  
  55. fi
  56.  
  57.  
  58. # Backups
  59.  
  60.  
  61. #Firmar los archivos de '/etc/samba'
  62.  
  63.  
  64. # eliminar firma previa, usamos la opcion -f por si no existe.
  65.  
  66. rm /etc/samba/*.sign
  67.  
  68. gpg --detach-sign -u educacionit@$HOSTNAME -o /etc/samba/smb.conf.sign /etc/samba/smb.conf
  69.  
  70. # backup de configuracion
  71.  
  72. rsync -av -e "ssh -i /root/.ssh/id_rsa" /etc/samba/smb.conf* sambaserver@$server:~/
  73.  
  74. # backup de directorio de archivos compartidos en samba
  75. rsync -av -e "ssh -i /root/.ssh/id_rsa" /srv/samba sambaserver@$server:~/
  76.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement