Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
Pages: 1 2 
Script de sauvegarde de fichier. (Read 13127 times)
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Script de sauvegarde de fichier.
16. May 2008 at 10:04
 
Bonjour,

J'aimerai savoir si un script qui permet de sauvegarder des fichiers dont on à renseigné les chemins existe.
Plus concretement :
Le script sauvegarde des chemins de fichiers et/ou dossiers et enregistre  ces fichier ou dossier dans un repertoire précis.
Je voudrais en faite avoir un script qui me fasse des copies de sauvegarde de mes fichiers de configuration.

Back to top
 
-Eddy- -Eddy-  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: Script de sauvegarde de fichier.
Reply #1 - 16. May 2008 at 11:48
 
rsync (avec --include-from) ? ou encore mieux (à mon goût): un VCS (et pourquoi pas cvs, puisqu'il est déjà dans la base ?)

PS: si le fil ne continue pas vers la discussion d'un script à proprement parler, je le déplacerai vers "Système", sans doute
Back to top
 
 
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: Script de sauvegarde de fichier.
Reply #2 - 16. May 2008 at 12:09
 
Je vais épargner du travail à francis.

Voici un script que j'utilise pour faire un backup de mes répertoires de travail, en gros des répertoires  tous les jours :


Code:
#!/bin/sh

# This script backup the content of the directory
# dayly backup for a week period.
##

WEEKDAY=`date +"%w"`

# Fichier temporaire
TFILE=`printf "BACKUP_FILE_.%d.old" $WEEKDAY`

FILENAME=`printf "BACKUP_FILE.%d.tgz" $WEEKDAY`

#repertoire a sauvegarder
DIRECTORY_TO_BK=$1

cd /tmp
/usr/bin/tar -czf $TFILE $DIRECTORY_TO_BK

# Copie du fichier temporaire cree vers sa destination finale
if [ -f ${TFILE} ] ; then
  cd /var/backups/
  rm -f ${FILENAME}.*
  mv /tmp/${TFILE} ${FILENAME}
fi;

 

Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #3 - 16. May 2008 at 12:24
 
Merci ros, ça représente quoi  : "BACKUP_FILE_" ?
Back to top
 
-Eddy- -Eddy-  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: Script de sauvegarde de fichier.
Reply #4 - 16. May 2008 at 14:07
 
Il existe aussi un port pour rsnapshot qui pourrait faire ton affaire.
Back to top
 
 
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: Script de sauvegarde de fichier.
Reply #5 - 16. May 2008 at 14:10
 
Le fichier de backup crée se nommera p-ex BACKUP_FILE.1.tgz pour celui du dimanche
Tu peux changer BACKUP_FILE par ce que tu veux, voir modifier le script pour le mettre en paramètre
Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #6 - 20. May 2008 at 11:05
 
J'ai commencé un petit script, et j'ai besoin d'une petite aide  Smiley

Lorsque l'utilisateur donne le chemin relatif d'un fichier peut-on retrouver facilement le chemin absolu ?
Par exemple, l'utilisateur lance un script en donnant en paramètre le fichier file de son home comment avoir le chemin /home/titi/file ?
Merci
Back to top
 
-Eddy- -Eddy-  
IP Logged
 
Marck
God Member
*****
Offline


I Love New YaBB

Posts: 1113
Re: Script de sauvegarde de fichier.
Reply #7 - 20. May 2008 at 11:19
 
Ben... le chemin relatif devrait toujours être relatif par rapport à l'actuel répertoire de travail, non (ou cela ne te convient pas...) ?

Donc il doit suffire de récuperer celui-ci avec : pwd

#!/bin/sh
BASE=`pwd`
echo $BASE

A tout hasard, dans ce genre de script, les commandes basename et dirname peuvent aussi être utiles.
Back to top
 
WWW WWW  
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #8 - 20. May 2008 at 12:08
 
Ok donc si je fait :

$./mon_script file1

Si je veux enregistrer le chemin absolu de file1, je dois concatener pwd avec file1.

Si je fait
$./mon_script ../file1
Ca devient plus compliqué :/
Back to top
 
-Eddy- -Eddy-  
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: Script de sauvegarde de fichier.
Reply #9 - 20. May 2008 at 12:33
 
$ monscript.sh ../../../etc/profile
/etc/profile


$ cat monscript

CHEMIN_RELATIF=`dirname $1`
NOM_FICHIER=`basename $1`

CHEMIN_ABSOLUT=`(cd ${CHEMIN_RELATIF} && pwd )`

echo "${CHEMIN_ABSOLUT}/${NOM_FICHIER}"


Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: Script de sauvegarde de fichier.
Reply #10 - 20. May 2008 at 12:45
 
Pourquoi tant de complications ?:
Code:
LA_CIBLE_EN_ABSOLU=`pwd`/$1 


Non ?
Back to top
 
 
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #11 - 20. May 2008 at 13:11
 
Merci ros, marche très bien.

Francis ta version ne fonctionne pas  si l'utilisateur donne ../path/file.
Back to top
 
-Eddy- -Eddy-  
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #12 - 20. May 2008 at 13:19
 
Premiere version alpha, si vous voyez des abérrations merci de me les signaler.

Code:
#!/bin/sh

##Verification de l'existence du fichier .backuprc
if [ -f ~/.backuprc ];
then echo "Fichier de configuration trouvé"
else
	#Creation du fichier de configuration
	#Demande du repertoire de sauvegarde
	echo "Veuillez indiquer le repertoire de sauvegarde de vos fichiers"
	read directory
	if [ -d $directory ];
	then
	    echo "Le répertoire [$directory] à été sauvegarde, pour le modifier ultérieurement, lancez le script avec l'option -d."
	else
	    echo "Le répertoire demandé n'existe pas voulez-vous le créer ? [y/n]"
		read reponse
	    if [ "$reponse" = "y" ];
	    then mkdir -p $directory
	    fi
	fi

	echo "Fichier de configuration du script backup_conf
" > ~/.backuprc
	echo "#Repertoire de sauvegarde" >>~/.backuprc
	echo "directory= $directory
" >> ~/.backuprc
	echo "#Liste des répertoires et fichiers à sauvegarder
#Listing
~/.backuprc" >> ~/.backuprc
	echo "Repertoire de sauvegarde enregistre [$directory]"
fi

##OPTION -a##
if [ "$1" = "-a" ];
##Ajout d'un fichier ou repertoire dans la liste à sauvegarder
then
    shift
    for i in $*
    do
	CHEMIN_RELATIF=`dirname $i`
	NOM_FICHIER=`basename $i`
	CHEMIN_ABSOLUT=`(cd ${CHEMIN_RELATIF} && pwd )`
	echo "${CHEMIN_ABSOLUT}/${NOM_FICHIER}" >>~/.backuprc
    done
fi

##OPTION -s##
if [ "$1" = "-s" ];
##Sauvegarde des fichiers et dossier dans le repertoire de sauvegarde.
then
 ##Récupération du répertoire de sauvegarde
    directory=$(grep directory ~/.backuprc | awk '{ print $2 }')
    cat ~/.backuprc |
    awk '
	    BEGIN {deb=0}
	    { if( deb == 0 ){
		    if ( $1 == "#Listing" ) {deb=1} }
		else {system("cp -rv "$1" '$directory'") }
    }'
fi
 

Back to top
 
-Eddy- -Eddy-  
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: Script de sauvegarde de fichier.
Reply #13 - 20. May 2008 at 13:25
 
-Eddy- wrote on 20. May 2008 at 13:11:
Francis ta version ne fonctionne pas  si l'utilisateur donne ../path/file.

Ah oui ?:
Quote:
fug-fr% cat ~/testit.sh
#!/bin/sh

LA_CIBLE_EN_ABSOLU=`pwd`/$1

ls -l ${LA_CIBLE_EN_ABSOLU}
fug-fr% pwd
/var/tmp
fug-fr% sh ~/testit.sh ../at
total 4
drwxr-xr-x  2 daemon  wheel  512 12 fév  2002 jobs
drwxr-xr-x  2 daemon  wheel  512 12 fév  2002 spool
fug-fr%
Back to top
 
 
IP Logged
 
-Eddy-
YaBB Newbies
*
Offline


Freebsd user

Posts: 22
Vendée
Gender: male
Re: Script de sauvegarde de fichier.
Reply #14 - 20. May 2008 at 13:42
 
Si tu fais un echo à la place de ls, ca te donnera quelquechose de moins sympa. La commande ls est puissante.
Enfin pour mon script, ca fonctionnera mais l'enregistrement du chemin dans le fichier (.backuprc) sera moins "joli".
Back to top
 
-Eddy- -Eddy-  
IP Logged
 
Pages: 1 2