« LINUX:RSYNC-Rassemblement localement » : différence entre les versions

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche
Page créée avec « __FORCETOC__ =But= Dans ce script, nous rassemblons en un seul endroit ce que nous voulons sauvegarder. Cet ensemble constitue le niveau courant, le plus actuel de la sauv… »
 
Aucun résumé des modifications
Ligne 7 : Ligne 7 :




 
fichier "'''rsync.courant.bat'''"
----
----
  #!/bin/csh
  #!/bin/csh
Ligne 59 : Ligne 59 :
----
----


 
fichier "'''repertoire.txt'''"
 
----
/produc/utili:utili
/produc/mysql.dump:mysql.dump
/produc/manager:manager
----





Version du 1 février 2022 à 20:33

But

Dans ce script, nous rassemblons en un seul endroit ce que nous voulons sauvegarder. Cet ensemble constitue le niveau courant, le plus actuel de la sauvegarde.


Script

fichier "rsync.courant.bat"


#!/bin/csh
############################################################
# variables à adapter
#
# répertoire du programme
set MANAGER=/manager/backup
# répertoire de la base des sauvegardes
set BASE=/produc/backup
# répertoire des journaux
set DIRLOG=/produc/backup/log
############################################################
cd $MANAGER
# rsync => option -n pour être en étape de test
# TEST: si la sauvegarde de incrémentielle est en cours, attendre 10 secondes
set TEST2=`/usr/bin/cat ${DIRLOG}/rsync.jsm.lock`
if ( "$TEST2" != "fin" ) then
 /usr/bin/sleep 10s
endif
# TEST: si un autre processus rsync est encore en cours, ne pas démarrer celui-ci
set TEST1=`ps ax | grep "rsync --server" | grep -v grep`
if ( "$TEST1" == "" ) then
 echo debut > ${DIRLOG}/rsync.courant.lock
 date +%Y/%m/%d\ %H:%M:00 >> ${DIRLOG}/log.courant.lis
 set TEST2=1
 if ( "$TEST2" == "1" ) then
  if ( "$TEST2" == "1" ) then
   # boucler sur les différents répertoires à sauver, listés dans le fichier repertoire.txt
   # format: 2 zones séparées par ":" (un couple par ligne)
   #         1. répertoire source à partir de la racine (exemple: /produc/manager)
   #         2. répertoire cible sous le répertoire temporel de sauvegarde (exemple;: manager)
   set LISTEREPERTOIRE=`/usr/bin/cat ${MANAGER}/repertoire.txt`
   set i
   foreach i ($LISTEREPERTOIRE)
    set SOURCE=`echo $i | /usr/bin/awk -F ":" '{printf("%s",$1)}' `
    set REPERTOIRECIBLE=`echo $i | /usr/bin/awk -F ":" '{printf("%s",$2)}' `
    echo Source: $SOURCE
    echo Cible: /$REPERTOIRECIBLE
    if ( ! -d ${BASE}/courant/${REPERTOIRECIBLE} ) then
     mkdir ${BASE}/courant/${REPERTOIRECIBLE}/
    endif
    /usr/bin/rsync -a --delete --stats --log-file=${DIRLOG}/log.courant.log --exclude=".recycle" ${SOURCE}/ ${BASE}/courant/${REPERTOIRECIBLE}/
   end
   /usr/bin/date > ${BASE}/courant/date.log
  endif
 echo fin > ${DIRLOG}/rsync.courant.lock
else
 echo "Occupé"
endif

fichier "repertoire.txt"


/produc/utili:utili
/produc/mysql.dump:mysql.dump
/produc/manager:manager



->retour à RSYNC