rodrigopolo

TareaJC01

Aug 19th, 2021
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.18 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # Root check
  4. if [[ $EUID -ne 0 ]]; then
  5.     echo "Este script debe ejecutarse con permisos root."
  6.     exit 1
  7. else
  8.  
  9.     # Argument loop
  10.     for USERNAME in "$@"; do
  11.  
  12.         CURRENT_USER="/Users/$USERNAME"
  13.  
  14.         # Check if dir exists
  15.         if [ -d "$CURRENT_USER" ]; then
  16.  
  17.             echo "########## USUARARIO: $USERNAME ##########"
  18.  
  19.             TODAY=$(date "+%Y-%m-%d_%H%M%S")
  20.  
  21.             DESTINATION="/tmp/${USERNAME}_home_${TODAY}.tar.gz"
  22.  
  23.             TOTAL_FILES=$(find "$CURRENT_USER" -type f | wc -l)
  24.             TOTAL_DIRS=$(find "$CURRENT_USER" -type d | wc -l)
  25.  
  26.             echo "Archivos a ser incluidos $TOTAL_FILES"
  27.             echo "Directorios a ser incluidos $TOTAL_DIRS"
  28.  
  29.             tar -czf "$DESTINATION" -P "$CURRENT_USER"
  30.  
  31.             TAR_FILE_INFO=$(ls -la $DESTINATION)
  32.  
  33.             TOTAL_GZFILES=$(tar -tvf "$DESTINATION" | grep -E "^[^d]" | wc -l)
  34.             TOTAL_GZDIRS=$(tar -tvf "$DESTINATION" | grep -E "^d" | wc -l)
  35.  
  36.  
  37.  
  38.             echo "Archivos archivados: $TOTAL_GZFILES"
  39.             echo "Directorios archivados: $TOTAL_GZDIRS"
  40.             echo "Backup $CURRENT_USER completado!"
  41.             echo "Detalles del archivo de backup generado:"
  42.             echo $TAR_FILE_INFO
  43.  
  44.         else
  45.             # Report user not found
  46.             echo "El usuario \"$USERNAME\" no existe."
  47.         fi
  48.     done
  49.  
  50. fi
  51.  
  52.  
  53.  
Advertisement
Add Comment
Please, Sign In to add comment