Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1758 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Sauvegarde

n°504859
cortx
Posté le 16-06-2004 à 10:39:07  profilanswer
 

Voila je me suis lancer dans un script mais je ne maitrise pas encore:
Je souhaite sauvegarder mes fichiers de configurations samba apache et autre.
 
j'ai creer cela:

Citation :


#! /bin/sh
 
variable1=/home/espas/sav/etc/samba
variable2=/home/espas/sav/etc/httpd/conf
variable3=/home/espas/sav/etc/squirrelmail
variable4=/home/espas/sav/var/www/html/admin/phpMyAdmin
variable5=/home/espas/sav/var/www/html/squirrelmail/config
 
 
mkdir /home/espas/sav
mkdir /home/espas/sav/etc
mkdir /home/espas/sav/etc/samba
mkdir /home/espas/sav/etc/httpd
mkdir /home/espas/sav/etc/httpd/conf
mkdir /home/espas/sav/etc/squirrelmail
mkdir /home/espas/sav/var
mkdir /home/espas/sav/var/www
mkdir /home/espas/sav/var/www/html
mkdir /home/espas/sav/var/www/html/admin
mkdir /home/espas/sav/var/www/html/admin/phpMyAdmin
mkdir /home/espas/sav/var/www/html/squirrelmail
mkdir /home/espas/sav/var/www/html/squirrelmail/config
 
 
cp /etc/samba/smb.conf $variable1
cp /etc/httpd/conf/commonhttpd.conf $variable2
cp /etc/httpd/conf/httpd2.conf $variable2
cp /etc/squirrelmail/config.php $variable3
cp /var/www/html/admin/phpMyAdmin/config.inc.php $variable4
cp /var/www/html/squirrelmail/config/config.php $variable5
 
echo "Fichier sauvegarder"
 


------------------------------------------
Le probleme qui se pose ets que si les fichier ont deja ete sauvegarder, il me dit que il ne peut pas creer les dossier car ils existent deja.
 
Comment puis-je supprimer ces avertissement, je pense incorporer les ligne de suppression des fichier et dossier en debut de script et apres les recreer.
 
Qu'en penssez vous.

mood
Publicité
Posté le 16-06-2004 à 10:39:07  profilanswer
 

n°504869
En_Sabah_N​ur
お前はもう死んでいる
Posté le 16-06-2004 à 10:49:46  profilanswer
 

pour éviter les messages(et rendre la copie récursive):
cp -rf fichier1 fichier2
 
sinon, y a une erreur dans ton script, il faut écrire:
 

Citation :

echo "Fichiers sauvegardés"

:o


Message édité par En_Sabah_Nur le 16-06-2004 à 10:50:09

---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
n°504880
cortx
Posté le 16-06-2004 à 11:04:15  profilanswer
 

Ha ouai merci pour la correction désoler  
et merci pour la commande aussi.
 
Donc maintenant tout marche niquel.
-----------------------------------------
 
2\Probleme
Je souhaite faire un script pour remmetre les fichier seulement le probleme qui va se posé, c'ets que si j'execute ce script en mode utilisateur, il va surement me jeter pour remplacer els fichier.
 
comment est ce que ca marche pour dasn un script passer en root:

Citation :


su
echo "mon_pass"


ca me semble un peu simplet tout de meme

n°504881
arsunik
ma tuxitude me beastifie
Posté le 16-06-2004 à 11:06:49  profilanswer
 

"mkdir -p" est ton ami.
tu y gagnerais beaucoup en simplicité à faire un tar de tes fichiers plutôt qu'à les copier...

n°504884
arsunik
ma tuxitude me beastifie
Posté le 16-06-2004 à 11:10:12  profilanswer
 

rajoute quelque chose comme ça au début de ton script :
 
if [ ! `id -u` = 0 ]; then
    exec su -c $0
fi
 
(tu peux aussi utiliser sudo à la place de su)

n°504894
cortx
Posté le 16-06-2004 à 11:18:52  profilanswer
 

ArsuniK
Je n'y connait rien en script, tu pourrai pas me detailelr ce que tu as dit.
Si je comprend bien c'ets pour passer ne root, j'ai remarquer le su masi le reste je vois vraiment pas
 

n°504897
cortx
Posté le 16-06-2004 à 11:23:52  profilanswer
 

Bon voila deja mon script de sauvegarde est fini, je le pose.
Il ets lourd, je le concoit mais vu que c'ets mon premier script, ca me permet de tout bien voir de facon coherente
 

Citation :


# Mise en place des variables.
variable1=/home/espas/sav/etc/samba
variable2=/home/espas/sav/etc/httpd/conf
variable3=/home/espas/sav/etc/squirrelmail
variable4=/home/espas/sav/var/www/html/admin/phpMyAdmin
variable5=/home/espas/sav/var/www/html/squirrelmail/config
 
 
#Copie de backup
#/!\ ne marche que une (1) fois /!\
rm -r /home/espas/sav.old
mkdir /home/espas/sav.old
cp -bR /home/espas/sav/* /home/espas/sav.old
echo "BackUp créé"
 
 
#Suppression des fichiers deja existant.
rm -r /home/espas/sav
echo "Dossiers supprimés"
 
 
#Création de l'arborescence des dossiers.
mkdir /home/espas/sav
mkdir /home/espas/sav/etc
mkdir /home/espas/sav/etc/samba
mkdir /home/espas/sav/etc/httpd
mkdir /home/espas/sav/etc/httpd/conf
mkdir /home/espas/sav/etc/squirrelmail
mkdir /home/espas/sav/var
mkdir /home/espas/sav/var/www
mkdir /home/espas/sav/var/www/html
mkdir /home/espas/sav/var/www/html/admin
mkdir /home/espas/sav/var/www/html/admin/phpMyAdmin
mkdir /home/espas/sav/var/www/html/squirrelmail
mkdir /home/espas/sav/var/www/html/squirrelmail/config
echo "Dossiers créés"
 
 
#Copie des fichiers de configuration
cp /etc/samba/smb.conf $variable1
cp /etc/httpd/conf/commonhttpd.conf $variable2
cp /etc/httpd/conf/httpd2.conf $variable2
cp /etc/squirrelmail/config.php $variable3
cp /var/www/html/admin/phpMyAdmin/config.inc.php $variable4
cp /var/www/html/squirrelmail/config/config.php $variable5
echo "Fichiers sauvegardés"
 


 
Le seul probleme que j'ai encore, c'ets lors de la premier creation de sauvegarde, le dossier sav etant vide, la creation de sav.old m'affiche des erreurs

n°504909
MaxMaveric​k
bli bli
Posté le 16-06-2004 à 11:51:24  profilanswer
 


Tiens une version un peut plus propre:
 


#!/bin/bash
 
# si non root, relance le script avec su
if [ ! `id -u` = 0 ]; then
   echo "Ce script doit etre executé en root, veuillez saisir le password"
   exec su -c $0
fi
 
# Mise en place des variables.
savdir=/home/espas/sav
savmethod=/bin/cp -a
cleanmethod=/bin/rm -r
 
# liste des fichiers a sauvegarder
files="/etc/samba/smb.conf /etc/httpd/conf/commonhttpd.conf /etc/httpd/conf/httpd2.conf /etc/squirrelmail/config.php /var/www/html/admin/phpMyAdmin/config.inc.php /var/www/html/squirrelmail/config/config.php"
 
 
# Copie de backup
# garde 10 versions
last=9
echo -n "Backup "
[ -d "$savdir.$last" ] && $cleanmethod "$savdir.$last"
for i in `seq $last -1 1`; do
    n=$((i+1))
    if [ -d "$savdir.$i" ]; then
       /bin/mv "$savdir.$i" "$savdir.$n"
       echo -n "."
    fi
done
if [ -d "$savdir" ]; then
   /bin/mv "$savdir" "$savdir.1"
   echo -n "."
fi
echo " done"
 
#Copie des fichiers de configuration
function backup() {
  dir=`dirname $1`
  [ ! -d "$savdir/$dir" ] && mkdir -p $savdir/$dir
  $savmethod $i $savdir/$dir
}
 
for f in $files; do
    backup $f
done
echo "Fichiers sauvegardés"


n°504924
bobuse
Posté le 16-06-2004 à 12:10:37  profilanswer
 

sinon rsync c'est bien ;)

n°505022
cortx
Posté le 16-06-2004 à 14:59:38  profilanswer
 

OKi merci je testerai tout ca demain quand ej seai de retour au taff.
merci

mood
Publicité
Posté le 16-06-2004 à 14:59:38  profilanswer
 

n°505620
arsunik
ma tuxitude me beastifie
Posté le 17-06-2004 à 13:52:01  profilanswer
 

cortx a écrit :

ArsuniK
Je n'y connait rien en script, tu pourrai pas me detailelr ce que tu as dit.
Si je comprend bien c'ets pour passer ne root, j'ai remarquer le su masi le reste je vois vraiment pas


 
id -u : donne l'uid de l'utilisateur (man id). l'uid de root est toujours 0.
exec : remplace le script courant par la commande donnée en argument (help exec)
$0 : chemin complet du script courant
 
Donc si l'id n'est pas celui de root, on relance le script en root.

n°506236
cortx
Posté le 18-06-2004 à 10:55:51  profilanswer
 

hulm oki merci c'ets plus clair.

Citation :


# si non root, relance le script avec su  
if [ ! `id -u` = 0 ]; then  
   echo "Ce script doit etre executé en root, veuillez saisir le password"  
   exec su -c $0  
fi  


Donc si j'ai bien compris la demarche, si on ets pas en root, le script execute automatiquement la comamdne su et nous demande le pass afin de continuer la sauvegarde.
 
Commetn faire pour dire au script que le mdp root c'est 123456789 et qu'il le fasse lui meme (utilité pour des sauvegarde genre 3h du matin ou l'on ets sur que plus personne ets present dasn l'entreprise et que els fichier sauvegarder seront finalisé ?)
 
Parce que en fet c'est ce que je souhaiterai faire masi je n'ai pas la possibilité de faire du raid qul qu'il soit alros je me suis rabatut sur cette option.

n°506269
arsunik
ma tuxitude me beastifie
Posté le 18-06-2004 à 11:45:59  profilanswer
 

Tu fais un cron.
Le mieux c'est de lancer directement le cron en root :
tu te logue en root et tu fais un man cron pour savoir comment  installer un cron.
 
Pour permettre à un utilisateur de lancer des commandes en root, regarde du coté de sudo mais normallement tu n'es as pas besoin ici.
 

n°506351
cortx
Posté le 18-06-2004 à 13:39:00  profilanswer
 

Oki merci je regarde pour cron


Aller à :
Ajouter une réponse
 

Sujets relatifs
[Scripts] Sauvegarde incrementale - Commande dump[ Firefox ] Nouveau menu, passer l'url dans un script bash...
Shell script et paramêtreLinux: sauvegarde automatique sur lecteur ZIP
HP-UX : pb espace dans les parametre de mon script...script obsidian pour xchat
Pb de sauvegarde de configuration sous MD10[Debian] Postfix sauvegarde des mails ?
Pg_DUmp : script de sauvegarde, mais demande automatique du password ? creation script de sauvegarde sous NT4
Plus de sujets relatifs à : Script Sauvegarde


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR