1 | |||
Auteur | Messages | ||
---|---|---|---|
Foromus | #1 Posté le 30/5/2018 à 19:24:29 | ||
Bonjour à tous, Il y a pas mal de temps, j'avais posté ici, suite à des soucis de copies sur un projet de "copies de secours". Les opérations se déroulent normalement (ça marche bien), et le processus affiche une barre de progrès qui se remplit régulièrement. J'ai mis du temps à comprendre pourquoi mes copies étaient altérées ou incomplètes. En fait, bien que la barre soit complète et que l'affichage de l'opération indique que "tout s'est passé avec succès", il se trouve que, non, tout ne s'est pas passé avec succès parce que, en réalité, le processus de copie n'est pas du tout terminé, même si mon logiciel indique que s'est fini. Et effectivement, si je laisse du temps au temps - je vais faire autre chose entre-deux pendant un quart d'heure ou une heure (suivant le support), les copies sont effectuées normalement. Maintenant que je le sais, j'en tiens compte, mais ça fait désordre... Donc, mon idée, c'est de quantifier le poids des fichiers à recopier, sachant qu'il y a, d'une part, des fichiers seuls, d'autre part, des répertoires - éventuellement des sous-répertoires, avec des fichiers dedans. Une fois le volume déterminé par calcul, je lance la copie, et à chaque copie, je note et ajoute le poids de chaque fichier copié dans une variable. Je commande ma "progress-bar", d'une valeur max = poids de l'ensemble calculé au départ, j'utilise la valeur de la variable susdite pour l'affichage, et ne permettrai la fin des opérations que lorsque les deux poids seront égaux. Au passage, cela montrera aussi que la copie a été exacte. Au fond, ça doit marcher à peu près comme ça dans le cas d'un transfert de fichier via le gestionnaire de l'OS où, là, on a vraiment un affichage en temps réel. Pour réaliser mon idée, il faudrait que je connaisse la formule me permettant de connaître le poids d'un fichier, ça, je ne sais pas faire... Ensuite, comment je m'en sors avec les sous-répertoires ? Certes, je pourrais me passer de cette amélioration, mais je serais content de faire un truc un peu plus performant... | |||
didier18 | #2 Posté le 31/5/2018 à 12:24:51 | ||
Bonjour Foromusil faudrait que je connaisse la formule me permettant de connaître le poids d'un fichier Regarde l'aide de la fonction "stat", je pense que cela répondra à ta question, en plus il y a quelques exemples que tu pourras adapter à ton besoin... Pour connaitre le nombre de fichiers du répertoire "parent" et des répertoires "enfant" colle l'exemple ci-dessous dans un nouveau projet...
En changeant "/mnt/home" par un autre chemin/répertoire, tu pourras voir le contenu complet du répertoire... Tout est affiché dans la console, il te suffira de récupérer les valeurs des variables selon ton besoin. EDIT lors de la copie du code, des caractères ont disparus ??? 16 Print "Il y a " & ifile & " fichiers dans le répertoire " & spath 'affiche le nombre de fichiers dans la console 29 Print spath & " contient " & idir & " répertoires qui contiennent " & ifiletotal & " fichiers." Bonne journée. | |||
spheris | #3 Posté le 31/5/2018 à 19:52:40 | ||
Foromus, Personnellement pour faire des copies de secours ou sauvegarde sans passer par gambas. J'utilise plutôt ce script sh qui marche impec : Il te faut juste créer un fichier dans le home de ton PC et de le rendre exécutable. Voici le script : #!/bin/bash REPERTOIRE_SOURCE="/home/" REPERTOIRE_DESTINATION="/media/mondisquedurexterne" # Détecter la présence du volume de destination et interrompre l'opération si nécessaire if [ ! -e "$REPERTOIRE_DESTINATION" ] then echo "Attention, le disque de sauvegarde n'est pas présent" exit fi rsync -av $REPERTOIRE_SOURCE "$REPERTOIRE_DESTINATION" echo "La commande de sauvegarde a terminé son travail..." echo "Vérifiez dans le terminal s'il n'y a pas eu d'erreur !" read | |||
Foromus | #4 Posté le 1/6/2018 à 06:27:32 | ||
Bonjour à tous, Merci pour ces conseils et documentation. D'abord, merci à didier18, je vais étudier un peu la question, la commande "stat", je découvre... Spheris : Il y a des dizaines d'applications de sauvegardes qui existent déjà et que je n'ai pas spécialement testé cependant, alors pourquoi vouloir faire un truc qui ne servira qu'à moi ? Réponse : me faire plaisir... (Profondément égoïste, je reconnais...). Concernant les scripts sh, je n'ai jamais approfondi la question, pensant que c'était trop loin de mon niveau, peut-être aussi que j'en n'ai jamais trouvé la nécessité, ou que ladite nécessité ne me soit point, d'emblée, apparue. Il est probable que je me prive là d'une source probablement bien intéressante, mais, concrètement, peut-on vouloir tout connaître ?.. Je crois qu'il faut parfois oser borner ses limites même si une limite, par définition, n'a d'intérêt que si elle est franchie... Bon, mais je vais réfléchir à tout ça... | |||
1 |