IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Dump SQL et suppression de fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut Dump SQL et suppression de fichier
    Bonjour,

    J'ai fais un script sh qui se lance en cron sur un hébergement web:

    Voici le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    #!/bin/bash
     
    host="localhost"
    user="user"
    pass="pass"
    bdd="base"
     
    jour=`date +%d-%m-%Y-%H-%M-%S`
    dossier="private/dump-sql"
    name="$dossier/dump-$jour.sql"
     
    mysqldump -h $host -u $user -p$pass $bdd > $name
     
    find $dossier -type f -mtime +7 -exec rm -f {} \;
    Ce script fait un dump de la base de données, va stocker le fichier dans /private et après efface tout les fichiers qui ont plus de 7 jours...

    Le script fonctionne à part la suppression de fichier...et aucune erreur ne m'est retournée...

    Est-ce que ma commande find est juste ?

    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Pour le savoir il faut tester la sortie de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /private/dump-sql -type f -mtime +7 -exec echo "rm -f {}" \;

  3. #3
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut
    Je ne peux pas tester directement sur le serveur web, vu que c'est du mutalisé, je n'ai pas de console, je suis obliger de tester en simulant en local.

    En local ça à l'air de fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rm -f ./dump-1.sql
    rm -f ./dump-2.sql
    rm -f ./dump-3.sql
    Alors pourquoi ça ne fonctionne pas sur le serveur web?

    Merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Ma boule de cristal étant en panne, je supputerai des droits d'administration restreints...

    Sinon, ton script et ta crontab, tu y accèdes comment ?

  5. #5
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Ma boule de cristal étant en panne, je supputerai des droits d'administration restreints...

    Sinon, ton script et ta crontab, tu y accèdes comment ?
    Via Plesk, et le script je le dépose dans un dossier sur mon ftp qui est hors du dossier web.

    Mais si le script arrive à créer le fichier dump, il peut théoriquement l'effacer?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par nesswaw Voir le message
    Via Plesk, et le script je le dépose dans un dossier sur mon ftp qui est hors du dossier web.

    Mais si le script arrive a créé le fichier dump, il peut théoriquement l'effacer?
    Peut-être n'as-tu pas suffisamment de droits concernant certaines commandes, comme "rm" par exemple

    Essaies de modifier ta crontab et de rajouter le 'echo "rm -f {}" >> fich.log' en lieu et place du "rm -f {}"...

  7. #7
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut
    Alors j'ai bien un résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rm -f private/dump-sql/dump-20-03-2011-03-00-01.sql
    Après j'ai testé avec cette commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $dossier -type f -mtime +7 -exec "rm -fv {}" >> private/fich.log \;
    Résultat: le fichier log est vide, mais Plesk m'envoie un mail d'erreur:

    find: rm -fv private/dump-sql/dump-20-03-2011-03-00-01.sql: No such file or directory
    Pourtant le fichier private/dump-sql/dump-20-03-2011-03-00-01.sql est bien présent....

    Une autre idée?

    Merci

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Enlèves les guillemets autour de l'expression, ils sont inutiles sans le "echo"

    Essaie de mettre le chemin absolu pour la commande "rm" (/bin/rm normalement mais à vérifier sur ton système).

  9. #9
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut
    Victoire, en enlevant les "" ça fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $dossier -type f -mtime +7 -exec rm -fv {} >> private/fich.log \;
    Résultat: dans mon fichier log:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    removed `private/dump-sql/dump-20-03-2011-03-00-01.sql'
    Et le fichier n'existe plus

    Je vais voir si le script fonctionnera cette nuit, merci beaucoup pour ton aide

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    De rien, mais je n'ai rien fait de plus par rapport à ton script d'origine, la syntaxe est la même et ce n'est pas la redirection du mode verbeux dans un fichier qui a résolu le problème

  11. #11
    Membre éclairé
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2007
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2007
    Messages : 344
    Par défaut
    Je vais tester ce soir avec redirection dans le log, et demain je vais tester comme avant. mais c'est rai que c'est bizarre...

  12. #12
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    mets le chemin absolu dans la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dossier="private/dump-sql"

Discussions similaires

  1. [CVS] Répercuter les suppressions de fichiers
    Par efaure dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 17/05/2004, 17h34
  2. [BATCH]Suppression de fichier
    Par alxkid dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 21/04/2004, 13h25
  3. Réponses: 4
    Dernier message: 16/04/2004, 08h20
  4. Auto suppression de fichier
    Par pato dans le forum Langage
    Réponses: 4
    Dernier message: 05/03/2004, 09h09
  5. Suppression de fichiers
    Par wasch dans le forum C++Builder
    Réponses: 6
    Dernier message: 20/11/2003, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo