Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 24/11/2009, 11h51   #1
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Par défaut recherché le dernier backup enregistré

Bonjours,

j'ai un petit problème qui est que je métrise pas trop bash.
mais je me débrouille.

voilà je doit faire 4 backup par jour mon scripte de back up marche super bien mon cron est ok
jusque là tous va bien par contre la ou sa ce complique c'est que sur les 4 back up il faut qu'il y en a un qui revien chez nous
donc j'ai fait un autre scripte qui m'envoit les backup
mais je veu qu'un back up j'en enregistre 4 mais un seul sera chez moi
et j'aimerai que ce soit le dernier enregistré le problème c'est que je sait pas comment fair pour chercher le dernier fichier enregistré
c'est pourquoi je fais appel a vous.

mon code :
Code :
1
2
3
4
5
6
7
8
9
 
user $username $password
prompt
binary
mkdir $remotepath
cd $remotepath
put $fichierjour
quit
EOF
mais je sais pas comment faire pour remplacer $fichierjour par le dernier enregistré

donc si quelqu'un peu m'aider ce serait gentille
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 12h07   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
Code :
fichierjour=$(ls -tr tesfichiers*.bak | tail -1)
...
?
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 12h38   #3
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
ok Merci c'est cool

par contre tesfichiers*.bak

sa réprésente quoi??
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 13h01   #4
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
voilà j'ai lancé le script mais sa ne marche pas

j'ai ce message d'erreur

Code :
1
2
3
250 CWD successful. "/SQL/2009-11-24" is current directory.
local: bdd_fr__2009-11-24.tar.gz remote: bdd_fr__2009-11-24.tar.gz
local: bdd_fr__2009-11-24.tar.gz: No such file or directory

et voici mon scripte
Code :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
# recuperer les backup
 
#on envoie l'archive zip sur un serveur distant : ici free
#pour cela on définie quelques variables
remoteserver="xx.xx.xx.xx"
remoteport="ccc"
remotepath=SQL/$(date +%Y-%m-%d)
username=stephen
password=111111
fichierjour=$(ls -tr /root |tail -1)
datejour=$(date +%Y-%m-%d)
datequinze=$(date -d '15 days ago' +%Y-%m-%d)
 
 
#le fichier du jour est envoyé sur le serveur
#Idealement il faudrait vérifier si le répertoire du jour existe déja ou non
ftp -n -v $remoteserver $remoteport << EOT
user $username $password
prompt
binary
mkdir $remotepath
cd $remotepath
put $fichierjour
quit
EOF
 
 
#on cree le repertoire du jour et y place les backups
mkdir /backup/sql/$datejour
mv *.sql /backup/sql/$datejour/
 
#on supprime le repertoire d'il y a 15 jours s'il existe
if test -d /backup/sql/$datequinze;
then echo 'Suppression des vieux backups'
rm -rf /backup/sql/$datequinze
fi
 
#on supprime le tar.gz du jour
#rm -f $fichierjour
 
echo "-----------------------------------------------------------"
echo " "
 
logout
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 13h22   #5
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
Citation:
Envoyé par sinifer
par contre tesfichiers*.bak

sa réprésente quoi??
Ça représente le nom de tes fichiers de backup, car, comme tu as pu le constater, si tu n'indiques pas de nom, ou un motif qui sera developpé suivant les règles de Développement des chemins, ls n'indique pas le chemin sur la sortie standard.

Donc, il faut indiquer à la commande ls, le chemin et un motif de tes fichiers (ouais, c'est pas clair), par exemple :
Code :
fichierjour=$(ls -tr /chemin/vers/bdd_fr*.tar.gz | tail -1)
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 13h33   #6
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci pour l'explication

donc j'ai essayer ce que tu ma dit est sa ma mis ce message d'erreur cette foi

Code :
1
2
3
4
5
 
250 CWD successful. "/SQL/2009-11-24" is current directory.
local: /root/bdd_fr__2009-11-24.tar.gz remote: /root/bdd_fr__2009-11-24.tar.gz
227 Entering Passive Mode (81,251,25,13,12,8)
550 Filename invalid
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 13h57   #7
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
Je crois que c'est parce que le répertoire /root n'existe pas dans /SQL/2009-11-24 ...
essaye :
Code :
put $fichierjour ${fichierjour##*/}
...
?
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 14h09   #8
Nouveau Membre du Club
 
Inscription : février 2008
Messages : 318
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 318
Points : 39
Points : 39
Merci

c'est parfait sa marche nickel

Par contre je pense que sa me permet d'aller dans root peut tu m'expliquer en deux mots le truc stp car j'aime bien savoir les chose sans les recopier bêtement même si sa marche

en tous cas merci
sinifer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 14h31   #9
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 897
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 897
Points : 3 677
Points : 3 677
Ça supprime tout ce qui précède le dernier slash contenu dans la variable.

Je te laisse consulter le man bash
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 23h21.


 
 
 
 
Partenaires

Hébergement Web