backup_full.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/env sh
  2. # NÃO ULTRAPASSE DE '|
  3. #============HEADER=================================================|
  4. #AUTOR
  5. # Jefferson Rocha <lrcjefferson@gmail.com>
  6. #
  7. #PROGRAMA
  8. # Backup Full
  9. #
  10. #DESCRICAO
  11. #
  12. #
  13. #CHANGELOG
  14. #===================================================================|
  15. [ "$UID" -ne "0" ] && { printf '%s\n' "Necessita de root."; exit 1 ;} # Root?
  16. #=========VARIAVEIS====================|
  17. dia=$(date +%d-%m-%y)
  18. # USUARIO mexa aqui.
  19. UUID="B6F3-BD81" # UUID do dispositivo (blkid)!
  20. ORIGEM_BACKUP="/home/slackjeff/Desktop" # Diretorio COMPLETO do BACKUP
  21. DIRETORIO="bkp" # Se ter um diretorio especifico, especifique.
  22. DESTINO_BACKUP="/mnt/backup_full" # Informe o ponto de montagem.
  23. # NÃO MEXER
  24. DISPOSITIVO=$(blkid -U "$UUID") # Convertendo UUID para Nome dispositivo.
  25. log="/var/log/backup_full.log"
  26. #======================================|
  27. #=========TESTES=======================|
  28. # Verificando se dispositivo está montado!
  29. umount -vf "$DISPOSITIVO" 1>/dev/null 2>/dev/null
  30. # Não existe? CRIE!
  31. if [ ! -d "$DESTINO_BACKUP" ]; then
  32. if ! mkdir -v "$DESTINO_BACKUP"; then
  33. exit 1
  34. fi
  35. fi
  36. # MONTANDO DISPOSITIVO!
  37. if ! mount "$DISPOSITIVO" "$DESTINO_BACKUP" 2>/dev/null; then
  38. printf '%s\n' "FALHOU NA MONTAGEM!"
  39. exit 1
  40. fi
  41. #======================================|
  42. #=========FUNCOES======================|
  43. _msg(){
  44. cat >> "$log" <<END
  45. ==================${dia}=====================
  46. HORA INICIO: $hora_inicio
  47. HORA TERMINO: $hora_fim
  48. DIR BACKUP: ${ORIGEM_BACKUP}
  49. DISPOSITIVO: ${DISPOSITIVO}
  50. MONTAGEM: ${DESTINO_BACKUP}
  51. ===============================================
  52. END
  53. }
  54. #======================================|
  55. #========INICIO
  56. SAIDA_FINAL="backup-${dia}.tar.gz" # Nome do pacote final.
  57. hora_inicio=$(date "+%H:%M:%S") # Hora de inicio do backup
  58. if tar cvzC "$ORIGEM_BACKUP" -f "$SAIDA_FINAL" "bkp" --owner=0 --group=0 2>/dev/null; then
  59. mv "$SAIDA_FINAL" "$DESTINO_BACKUP" # Movendo pacote para destino.
  60. hora_fim=$(date "+%H:%M:%S") # Horario de Fim do backup.
  61. _msg # Chamando função.
  62. umount -vf "$DISPOSITIVO" 1>/dev/null 2>/dev/null
  63. else
  64. exit 1
  65. fi