Un script de shell para copiar todos los archivos con la misma estructura

Un script de shell para copiar todos los archivos con la misma estructura

Este script de shell está diseñado para una tarea específica requerida para nuestro servidor. Así que compartir el guión con los lectores de Tecadmin. Puede ser útil para ti.

Requisito

Nuestro requisito es copiar todos los archivos creados en el directorio a otro directorio con la misma estructura de directorio. El script se ejecutará en un intervalo regular, buscará todos los archivos creados en el directorio de origen y los copiará en el directorio de destino. El script debe mantener la misma estructura de directorio en el directorio de destino. Después de eso, cambie el permiso en el directorio de destino. Después de una copia exitosa del archivo, el script debe eliminar el archivo del directorio de origen.

Guión de shell

Cree un script de shell en su sistema y agregue el contenido a continuación. Actualizar los directorios de origen y de destino a la ubicación adecuada.

Establezca Change_ownership en 0, si no desea cambiar la propiedad en los archivos de destino.

#!/bin/Bash ################### Variables ##################### ##### ### Establezca la ubicación adecuada del directorio de origen y de destino Source_dir = "/Source/Dir/" Dest_dir = "/desination/dir/" tmp_file =/tmp/copyFilesList.txt ### Establezca el nombre de usuario y el nombre del grupo para establecer el permiso en los archivos copiados ### Establecer Change_ownership en 1 para cambiar la propiedad o 0 para no cambiarlo Change_ownership = 1 user = "root" group = "root" ##### ##### No edite debajo de esto hasta que se requiera ################ ### Prueba Si existe el directorio de origen ### El script se detendrá si la fuente no existe si [ -d "$ fuente_dir"]; luego echo "Directorio de origen de origen encontrado" más eco "Directorio fuente no encontrado. Verifique que las variables anteriores se establezcan correctamente la salida de script "Echo" exitada "FI ### Prueba Si existe el directorio de destino ### El script creará el directorio de destino si no existe. ### Si no se puede crear el directorio, el script terminará si [-d "$ dest_dir"]; luego echo "Directorio de destino encontrado, todo el directorio de destino" más eco "no encontrado, creando ahora" mkdir -p "$ dest_dir" if [$? -eq 0]; luego se eco "creó con éxito el directorio de destino."else echo" no pudo crear el directorio de destino. Script salió "Salir 1 FI fi ### Copie todos los archivos disponibles en el directorio de origen ### Después de copiar con éxito el archivo, eliminarlo del directorio de origen. CD "$ Source_dir" if [$? -eq 0]; entonces busca . -tipo f> $ tmp_file mientras lea Current_file_name do CP - -Parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; luego echo "archivo" $ current_file_name copiado correctamente.Archivo "rm -f" $ current_file_name "else echo" $ current_file_name no se pudo copiar "Fi hecho hecho < $TMP_FILE rm -f $TMP_FILE fi ## Set the permissions after copying files if [ $CHANGE_OWNERSHIP -eq 1 ]; then sudo chmod 775 -R "$DEST_DIR" sudo chown $USER:$GROUP -R "$DEST_DIR" fi ################### End of Script ###################################
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879#!/bin/Bash ################### Variables ##################### ##### ### Establezca la ubicación adecuada del directorio de origen y de destino Source_dir = "/Source/Dir/" Dest_dir = "/desination/dir/" tmp_file =/tmp/copyFilesList.txt ### Establezca el nombre de usuario y el nombre del grupo para establecer el permiso en los archivos copiados ### Establecer Change_ownership en 1 para cambiar la propiedad o 0 para no cambiarlo Change_ownership = 1user = 'root'group =' root '###### #### No edite debajo de esto hasta que se requiera ################ ### Prueba si existe el directorio de origen ### El script se detendrá si la fuente no existe si [ - - - d "$ fuente_dir"]; luego echo "Directorio de origen de origen encontrado" más eco "Directorio fuente no encontrado. Verifique que las variables anteriores se establezcan correctamente la salida de script "eco" salida "1FI ### prueba si existe el directorio de destino ### El script creará el directorio de destino si no existe.### Si no se puede crear el directorio, el script terminará si [-d "$ dest_dir"]; luego echo "Directorio de destino encontrado, todo el directorio de destino" más eco "no encontrado, creando ahora" mkdir -p "$ dest_dir" if [$? -eq 0]; luego se eco "creó con éxito el directorio de destino."else echo" no pudo crear el directorio de destino. Script salió "Exit 1 Fifi ### Copie todos los archivos disponibles en el directorio de origen ### Después de copiar correctamente el archivo, eliminarlo del directorio de origen. CD "$ Source_dir" if [$? -eq 0]; entonces busca . -tipo f> $ tmp_file mientras lea Current_file_name do CP - -Parents "$ current_file_name" "$ dest_dir" if [$? -eq 0]; luego echo "archivo" $ current_file_name copiado correctamente.Archivo "rm -f" $ current_file_name "else echo" $ current_file_name no se pudo copiar "Fi hecho hecho < $TMP_FILE rm -f $TMP_FILEfi ## Set the permissions after copying files if [ $CHANGE_OWNERSHIP -eq 1 ]; then sudo chmod 775 -R "$DEST_DIR" sudo chown $USER:$GROUP -R "$DEST_DIR"fi ################### End of Script ###################################

Guarde su archivo y cierre.

Luego establezca el permiso de ejecutar en el archivo de script.

chmod +x script.mierda