miércoles, 19 de mayo de 2021

Ubuntu copiar proyectos java

 Veamos como hacer una copia de seguridad de un proyecto gradle (o mejor dicho de todo e directorio del WORKSPACE donde se guardan los proyecots )de varias maneras:


1. Mediante find combinado con cp

Aquí buscamos todos los ficheros que sean:
  • gradle.properties
  • *.java
  • *.gradle
y tambien incluimos todo el contenido recursivo de las carpetas cuyos nombres sean
  • src
  • mylibs
  • frontend
Para ello previamente nos sitamos en la carpeta donde estan los proyectos a copiar y ejecutamos

find . \( -type f \( -iname gradle.properties -o -iname \*.java -o -iname *.gradle \)  -o -type d \( -iname src -o -iname mylibs -o -iname frontend \) \) -exec cp -r -a --parents {}  /home/eduard/copia-seguretat/ \;


2. Mediatne un tar


OJO: 
  • La sentencia tar es en una sola línea!!!!
  • Solo nos interasan las fuentes, descartamos lo demas

cd /WORKSPACES  # Cambiamos a la carpeta donde estan todos los proyectos

tar -cJvf /home/ximo/copia-seguretat/copia.tar 
   --exclude='*/target' 
   --exclude='*/.*' 
   --exclude='*/node_modules' 
   --exclude='*/gradle' 
   --exclude='*/bin'  
   --exclude='*/mytarget' 
   --exclude '*/gradlew*' 
   --exclude '*/libs' 
   --exclude '*/Servers' 
   --exclude '*/build' 
   --exclude '*/LICENSE' 
   --exclude '*/package.json' 
   --exclude '*/tsconfig.json' 
   --exclude '*/pnpm*.*' 
   --exclude '*/types.d.ts' 
   --exclude '*/webpack*.*' 
   WS_GRDL_VAADIN.02   

Creemos un script que lo recoja todo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash

#--Parameters
parent_folder='/home/ximo/WORKSPACES/'
workspace_folder='WS_GRDL_VAADIN.02'
tar_folder='/home/ximo/BACKUPS/'

echo '--------------------------------------------------------------'
echo 'Project: ' $parent_folder $workspace_folder
echo '--------------------------------------------------------------'
echo Por favor, verificar que se guarda el WORKSPACE correcto. Intro continua..
read continuar

#--Calculations
project_file=${parent_folder}${workspace_folder}
my_time=`date +"%Y%m%d_%H%M"`
tar_file=${tar_folder}${workspace_folder}"_"${my_time}".tar"


echo $tar_file
echo $project_file

#--Execution
cd ${parent_folder}

tar -cJvf ${tar_file} --exclude='*/target' --exclude='*/.*' --exclude='*/node_modules' --exclude='*/gradle' --exclude='*/bin'  --exclude='*/mytarget' --exclude '*/gradlew*' --exclude '*/libs' --exclude '*/Servers' --exclude '*/build' --exclude '*/LICENSE' --exclude '*/package.json' --exclude '*/tsconfig.json' --exclude '*/pnpm*.*' --exclude '*/types.d.ts' --exclude '*/webpack*.*' ${workspace_folder}   

No hay comentarios :

Publicar un comentario