This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

lordtaki

Membres
  • Compteur de contenus

    335
  • Inscription

  • Dernière visite

  • Jours gagnés

    6

lordtaki a gagné pour la dernière fois le 27 juillet

lordtaki a eu le contenu le plus aimé !

À propos de lordtaki

  • Rang
    Chevalier des Syno
  • Date de naissance 06/01/1979

Contact Methods

  • Website URL
    https://lordtaki.synology.me

Profile Information

  • Gender
    Male
  • Location
    Nice [France]

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. lordtaki

    Petit soucis dans un script.

    Normalement la sortie standard. S'il n'y a pas de résultat cela n'affiche rien. Quand je disais de faire -ls avant de faire -delete (ou -exec rm ...) c'était plutôt de tester la commande dans un terminal en direct (pas dans un script) avant de balancer la vraie commande qui supprime. Ta commande tu l'as déjà testée et elle fonctionne, que dire de plus? 🙂 Suis étonné que ceci ne fonctionne pas. Surtout que j'ai rapidement testé dans un terminal.
  2. lordtaki

    Problème scripts shell depuis MAJ 6.2.1-23824 [Résolu]

    /opt/bin/bash crash avec le nouveau firmware. Tu peux essayer avec un autre script qui appelle ce shell et qui fait un simple echo. Il devrait se crasher pareil. Ipkg c'est le gestionnaire de paquets. Pas certain que le dépôt soit à jour pour un 713.
  3. lordtaki

    Petit soucis dans un script.

    l'option -ls ne supprime rien, au contraire elle liste. Le but est de vérifier les résultats d'une commande find avant de passer à l'étape suppression.
  4. lordtaki

    Petit soucis dans un script.

    avec -ls ça donne quoi comme résultat pour les dossiers? Sinon, je soupçonne que la suppression des fichiers modifie justement la date de modification du dossier qui les contient. Alternative, regexp moins pourrie: Vu qu'on utilise rm -rf impératif de s'assurer avant avec un -ls
  5. lordtaki

    Petit soucis dans un script.

    Je te fais la traduction option par option: Chercher dans BACKUP_DIR les fichiers qui se terminent par .sql.gz et qui ont une date de modification de plus de RETENTION jour(s), lancer alors la commande rm sur chacun de ces fichiers. Chercher dans BACKUP_DIR les répertoires dont le nom contient dans un ordre précis . .20 et _ et qui ont une date de modification de plus de RETENTION jour(s), lancer alors la commande rmdir sur chacun de ces fichiers (suppression faite uniquement si le répertoire est vide). Ne pas oublier de faire des tests avec -ls (ou -exec ls {} \; ).
  6. lordtaki

    Petit soucis dans un script.

    Déjà le & n'est pas bon, ce serait $. Ensuite, dans ton script la variable DATE c'est la date du jour. En faisant un find dans la foulée avec cette variable tu n'auras aucun résultat car il n'a pas 2 jours d'ancienneté.
  7. lordtaki

    Petit soucis dans un script.

    C'est surtout que je ne comprends pas la signification derrière &DATE 🙂 Tu veux faire quoi avec cette syntaxe?
  8. lordtaki

    Petit soucis dans un script.

    pour le find sur les répertoires : -name "*.*.20*_*"
  9. lordtaki

    Petit soucis dans un script.

    Une vilaine expression régulière qui devrait faire l'affaire : *.*.20*_* En partant du principe que cela ne marchera que jusqu'en 2099.
  10. lordtaki

    Petit soucis dans un script.

    Oui c'est bon, juste je ne comprends pas : -name "&DATE" Quel est le format de date utilisée pour $DATE dans ton script?
  11. lordtaki

    Petit soucis dans un script.

    Pour l'option -name, il faut renseigner le nom complet ou une expression régulière qui correspond au nommage du répertoire DATE, pas la valeur de la variable $DATE qui, en plus, est dans ton script la variable du jour (enfin j'imagine). Ensuite, rm ne fonctionnera pas sur un répertoire. rmdir fonctionne mais pour un répertoire vide. Puisque tu as un répertoire par date et des fichiers par date dans le dit répertoire, généralement ce que je conseille est de: supprimer d'abord les fichiers -type f -name "*.sql.gz" -mtime +$RETENTION -exec rm {} \; supprimer ensuite le répertoire avec rmdir (on est certain que si le répertoire est supprimé c'est qu'il est vide) -type d -name "tonpatterndedate" -mtime +$RETENTION -exec rmdir {} \; Sinon bourrin et confiant, tu fais rm -rf sur le répertoire -type d -name "tonpatterndedate" -mtime +$RETENTION -exec rm -rf {} \;
  12. C'est peut-être résolu mais quand même (surtout que je fais du webhosting pour des grands du web français)... Par DNS, un simple CNAME suffit: www CNAME @
  13. lordtaki

    Petit soucis dans un script.

    Pas besoin du * après BACKUP_DIR pour ton find. Par défaut c'est récursif (sauf si on utilise les options max|mindepth). Ensuite, je conseille d'utiliser l'option '-type' (f pour fichier, d pour directory) en conjonction de l'option '-name' ou '-iname' pour être certain de n'effacer que ce qui doit l'être. Enfin, sur mon DS413 '-delete' n'est pas disponible, je dois utiliser "-exec rm {} \;" (les fichiers trouvés par find sont passés en argument à la commande rm). Avant de tester la nouvelle commande find, toujours utiliser '-ls' à la place de la commande qui supprime. Accessoirement, prendre l'habitude de protéger sa variable avec {}.
  14. lordtaki

    Petit soucis dans un script.

    Le script original : => boucle 'for' qui va lancer mysqldump pour chaque valeur de la variable 'databases' (db1, db2, db3) => boucle 'for' qui va lancer le mysqldump global (all-databases) pour chaque valeur de la variable 'databases' (db1, db2, db3) => premier problème, on lance x fois le dump global alors qu'une fois suffit, cette commande n'a pas besoin d'être dans une boucle 'for' => exécution séquentielle de 3 'echo', ^db doit être initialisée à la dernière valeur traitée lors de la 2e boucle 'for' Pour corriger: - réintégration du 'echo' avec la variable $db dans la première boucle 'for' (qui traite chaque db) - suppression de la boucle for pour le mysqldump car on doit le lancer une fois
  15. lordtaki

    Petit soucis dans un script.

    # Récupération de la liste des bases de données existantes. databases=`$MYSQL -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` # Sauvegarde des bases de données existantes en .sql dans des archives .gzip dans le dossier créé for db in $databases do echo $db $MYSQLDUMP --force --opt -h$MYSQL_HOST --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | $GZIP --stdout --best > "$BACKUP_DIR/$DATE/$db.sql.gz" echo "Sauvegarde réussie de '$db.sql.gz' dans le dossier '$BACKUP_DIR/$DATE'" >> $LOGFILE done # Sauvegarde des bases de données existantes dans un fichier .sql et dans une seule archive .gzip dans le dossier créé $MYSQLDUMP --force --opt -h$MYSQL_HOST --user=$MYSQL_USER -p$MYSQL_PASSWORD --all-databases | $GZIP --stdout --best > "$BACKUP_DIR/$DATE/bdd_complete.sql.gz" echo "Sauvegarde réussie de 'bdd_complete.sql.gz' dans le dossier '$BACKUP_DIR/$DATE'" >> $LOGFILE # Écrire dans le fichier log echo "Opération terminée" >> $LOGFILE