Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 28/04/2011, à 21:07

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

C'est dommage que tu aies une version de Busybox un peu ancienne (et sur Ubuntu c'est pire... mais pour autant, elle gère davantage de commandes... étrange, peut-être des alias vers des trucs GNU/Linux en dehors de busybox)

$ busybox
BusyBox v1.13.3 (Ubuntu 1:1.13.3-1ubuntu11) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as!

Currently defined functions:
    [, [[, addgroup, adduser, adjtimex, ar, arping, ash, awk,
    basename, brctl, bunzip2, bzcat, bzip2, cal, cat, chgrp,
    chmod, chown, chroot, chvt, clear, cmp, cp, cpio, crond,
    crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
    df, dirname, dmesg, dos2unix, dpkg, dpkg-deb, du, dumpkmap,
    echo, ed, egrep, eject, env, expand, expr, false, fbset,
    fdflush, fdisk, fgrep, find, fold, free, freeramdisk, fsck.minix,
    ftpget, ftpput, getopt, getty, grep, gunzip, gzip, halt,
    head, hexdump, hostid, hostname, httpd, hwclock, id, ifconfig,
    ifdown, ifup, init, ip, ipcalc, kill, killall, klogd, last,
    length, less, linuxrc, ln, loadfont, loadkmap, logger, login,
    logname, logread, losetup, ls, lzmacat, makedevs, md5sum,
    mdev, mesg, microcom, mkdir, mkfifo, mkfs.minix, mknod,
    mkswap, mktemp, more, mount, mt, mv, nameif, nc, netstat,
    nslookup, od, openvt, passwd, patch, pidof, ping, ping6,
    pivot_root, poweroff, printf, ps, pwd, rdate, readlink,
    realpath, reboot, renice, reset, rm, rmdir, route, rpm,
    rpm2cpio, run-parts, sed, setkeycodes, sh, sha1sum, sleep,
    sort, start-stop-daemon, static-sh, strings, stty, su, sulogin,
    swapoff, swapon, sync, syslogd, tac, tail, tar, tee, telnet,
    telnetd, test, tftp, time, top, touch, tr, traceroute, true,
    tty, udhcpc, umount, uname, uncompress, unexpand, uniq,
    unix2dos, unlzma, unzip, uptime, usleep, uudecode, uuencode,
    vconfig, vi, vlock, watch, watchdog, wc, wget, which, who,
    whoami, xargs, yes, zcat

J'ai trouvé le documentation en ligne, ici : http://www.busybox.net/downloads/BusyBox.html

C'est bien sûr le documentation de la dernière version, soit la 1.18.N

Eh bien :

  • readlink -f existe

  • stat -c existe avec les options standard de Linux

  • md5sum -c existe, comme Linux

... bref, si tu parviens à monter en 1.18.N ... tout devrait marcher du premier coup. Je vais voir chez Synology s'il y a un truc à ce propos sur le 1010+

(Le du, je vais l'ôter puisque en réalité c'était une autre façon d'avoir la taille des fichiers... mais stat -c %s est plus fiable)

Dernière modification par Zakhar (Le 28/04/2011, à 21:53)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#52 Le 29/04/2011, à 19:47

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

stadros83 semblant avoir jeté l'éponge (pour le moment ?) je livre une version "instable" pour NAS (Synology).

J'ai fait un "revert" pour ne pas "polluer" la version Linux "normale".
Celle-ci est "stable" et devient donc

29 avril 2011
Version 1.5.5

  • Retour au code 1.5.3. (plus amélioration: suppression de 'du + cut' remplacé par 'stat -c%s')
    et séparation du code non fini pour Synology 1010+


Désormais, pour le Synology 1010+, il y a un deuxième script qui permet de remplacer les commandes "déficientes" de la Busybox.
Ce script est mis sous forme de lien sur la page 1.
Le travail est donc "non fini" et en l'état ne fonctionne pas encore.

Le principe de ce script additionnel est qu'il remplace les commandes déficientes de Busybox par des fonctions ayant le même nom mais écrites en shell.
Ensuite ce script "source" le script tuXtremMerge standard.
Ainsi ça évite de tout réécrire !..

Une fonction interne au shell ayant priorité sur une commande, lorsqu'on utilise busyXtremMerge + tuXtremMerge, ce sont les fonctions shell qui sont utilisées. Cela fonctionne aussi sur Ubuntu, mais est inutile et peu recommandé (c'est de toute façon moins fiable et moins performant)... c'est cependant bien pratique pour mes test vu que je n'ai pas de NAS !..

A ce jour, je n'ai remplacé que readlink -f.
Il faudrait aussi remplacer stat -c%s (obtention de la taille du fichier)
... voire d'autres commandes.

Donc si d'autres personnes veulent prendre le relais :
- debug direct dans le code (et veulent bien le donner à la communauté en GPL V2)
- ou continuer à poster ici pour aider à debug sur votre modèle particulier de NAS

... vous êtes tous les bienvenus !..

Dernière modification par Zakhar (Le 29/04/2011, à 19:48)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#53 Le 01/05/2011, à 12:02

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Zakhar a écrit :

Parfait, on avance.

stat -c donne bien une erreur, je vais donc pouvoir la tester et faire avec une méthode alternative (genre un ls -l).

Je te fais ça probablement demain car là j'ai un TGV dans qq heures. wink

Et visiblement le 1010+ a un Linux plus ancien que le 211j, car l'autre utilisateur n'a eu aucun problème à part les CR/LF !

... et il semble aussi qu'il n'y ait pas du (disk usage), ait également un comportement différent !.. C'est pas grave, je vais le remplacer par un stat -c %s, qui sera lui-même remplacé par un ls -l puisque ton Linux n'a pas l'option -c à stat.

Et comme mieux vaut prévenir que guérir, peux-tu faire un :

df -B1 2.pdf.001.xtm; echo $?

... et je vois aussi que md5sum n'est pas cité sur la liste de commandes connues !..

Peux-tu faire de même :

which md5sum
md5sum 2.pdf.001.xtm; echo $?

Sorry j'ai pas eu le temps de faire ça plus tôt :

NAS> df -B1 2.pdf.001.xtm; echo $?
df: invalid option -- B
BusyBox v1.16.1 (2011-02-25 19:05:47 CST) multi-call binary.

Usage: df [-Pkmh] [FILESYSTEM]...

Print filesystem usage statistics

Options:
        -P      POSIX output format
        -k      1024-byte blocks (default)
        -m      1M-byte blocks
        -h      Human readable (e.g. 1K 243M 2G)

1

et

NAS> which md5sum
/opt/bin/md5sum
NAS> md5sum 2.pdf.001.xtm; echo $?
85d2df1f63d3af9605865820fb082179  2.pdf.001.xtm
0

Hors ligne

#54 Le 01/05/2011, à 12:20

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

J'ai essayé le dernier script en première page et j'obtiens ça :

NAS> bash tuXtremMerge 2.pdf.001.xtm
BusyBox v1.16.1 (2011-02-25 19:05:47 CST) multi-call binary.

Usage: readlink FILE

Display the value of a symlink

Vérifications ...  Erreur
2.pdf.001.xtm non trouvé, vide ou erreur
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.

Hors ligne

#55 Le 01/05/2011, à 12:22

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Bon j'ai fait une connerie ... j'ai essayé de mettre à jour Busybox et je me retrouve avec une version plus ancienne, fait chier !

Hors ligne

#56 Le 01/05/2011, à 12:54

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

stadros83 a écrit :

Bon j'ai fait une connerie ... j'ai essayé de mettre à jour Busybox et je me retrouve avec une version plus ancienne, fait chier !

Pas cool mad
T'as pas un moyen de le remettre "d'usine" + ipkg et les textutils ?

Sinon il te faut les deux scripts pour Busybox.

Le script spécial : celui-là spécial pour Busybox.
Et le script "standard" : celui-là qui est standard pour tout le monde.

Les deux liens sont sur la première page.
Une fois les deux scripts posés au même endroit, tu ne dois plus lancer :
tuXtremMerge [options] fichier [destination]

Mais à la place :

bash busyXtremMerge [options] fichier [destination]

Avec la même syntaxe que si tu lançais tuXtremMerge.

En réalité busyXtremMerge contient les "contournements" pour busybox, et lance ensuite le script "normal".
Donc si tu lances directement le script "normal", c'est fatal que tu aies les erreurs ci-dessus puisqu'alors tu n'as plus les "contournements" !..

Merci pour les commandes, j'ai donc :

  • df : pas d'option -B
    ==> Je vais utiliser -k (le truc pas défaut) et arrondir le test d'espace nécessaire au k octet supérieur. Ce sera dans le programme standard.

  • md5sum
    ==> ravi qu'il existe !.. (sinon on aurait sauté le test md5)

Bon, et j'attendrais donc que tu aies remis dans l'ordre pour avancer.

Pour le md5sum, j'aimerais voir si tu as l'option -c, donc lorsque tu auras réussi à remettre dans l'ordre, peux-tu faire un coup de :

md5sum 2.pdf.001.xtm >test.md5
md5sum -c test.md5; echo $?

Chez moi ça donne :

$ md5sum 2.pdf.001.xtm >test.md5
$ md5sum -c test.md5; echo $?
2.pdf.001.xtm: OK
0

Ah oui... et pour le test, tu peux activer l'option -v (verbeux) ça permet de voir jusqu'à on va sur une busybox, ça donne par exemple :

bash busyXtremMerge -v 2.pdf.001.xtm

(c'est un 'v' minuscule, le 'V' te donnera juste la version du script)

La réinstallation "d'usine" ça semble être ça : http://forum.synology.com/wiki/index.ph … ogy_System

... mais ATTENTION aux pertes potentielles de données... surtout si tu as le texte en rouge qui te le dit !.. mad

Dernière modification par Zakhar (Le 01/05/2011, à 13:14)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#57 Le 01/05/2011, à 13:08

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Bon si je lance le second script j'ai ça :

NAS> bash busyXtremMerge 2.pdf.001.xtm
Vérifications ...  stat: invalid option -- c
BusyBox v1.10.3 (2010-05-17 07:26:08 UTC) multi-call binary

Usage: stat [OPTION] FILE...

Display file (default) or filesystem status

Options:
        -f      Display filesystem status
        -L      Dereference links
        -t      Display info in terse form

stat: invalid option -- c
BusyBox v1.10.3 (2010-05-17 07:26:08 UTC) multi-call binary

Usage: stat [OPTION] FILE...

Display file (default) or filesystem status

Options:
        -f      Display filesystem status
        -L      Dereference links
        -t      Display info in terse form

Erreur
Premier ou dernier fichier de taille incohérente.
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.

J'espère que je vais trouver un busybox plus récent mais je ne sais pas trop comment faire là ... je vais voir.

Et sinon :

NAS> md5sum 2.pdf.001.xtm >test.md5
NAS> md5sum -c test.md5; echo $?
2.pdf.001.xtm: OK
0

Hors ligne

#58 Le 01/05/2011, à 13:16

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Impec, oui pour le stat je sais, et je peux contourner avec un ls. C'est moche... mais au moins ça marche.

Je t'ai mis le lien pour reset du firmware... mais attention c'est "dangereux".

Le mieux serait certes d'arriver à trouver une version plus récente de Busybox. Une 1.18.N est l'idéal, c'est vraiment quasi tout pareil qu'un GNU/Linux, sinon une 1.17.N c'est déjà pas mal.


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#59 Le 01/05/2011, à 13:48

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Je préfère éviter de remettre le firmware, on ne sait jamais, ça me ferait chier de perdre des données big_smile !

Je vais voir si je ne peux pas effectivement trouver un busybox plus récent smile.

Hors ligne

#60 Le 01/05/2011, à 14:08

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

stadros83 a écrit :

Je préfère éviter de remettre le firmware, on ne sait jamais, ça me ferait chier de perdre des données big_smile !

Je vais voir si je ne peux pas effectivement trouver un busybox plus récent smile.

Ok, ça se comprend ! wink

Sinon la même version que celle d'origine, elle n'a guère qu'un peu plus d'un an d'âge... busybox est en développement intense !



En attendant voila une version de développement pour toi :

Le script spécial : celui-là spécial pour Busybox.
Et le script "standard" : celui-là qui est standard pour tout le monde.

- Les numéros de versions sont inchangés.
- Contournement du "stat -c"
- Arrondi au 1024 pour df, et donc retrait de l'option -B1 qui demande l'espace disponible à l'octet près (par défaut on l'a par 1024)

Dernière modification par Zakhar (Le 01/05/2011, à 14:09)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#61 Le 06/05/2011, à 09:09

Greg360

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Bonjour Zakhar, je suis également intéressé par ton script. J'aimerais arriver à le faire tourner sur mon Nas Syno DS-107 avec le DSM 3.1-1613. Par contre, gros, énorme point noir, je ne connais rien en Linux...

Peux-tu m'aider?

D'avance merci!!!

Greg

Hors ligne

#62 Le 06/05/2011, à 16:59

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Zakhar a écrit :
stadros83 a écrit :

Je préfère éviter de remettre le firmware, on ne sait jamais, ça me ferait chier de perdre des données big_smile !

Je vais voir si je ne peux pas effectivement trouver un busybox plus récent smile.

Ok, ça se comprend ! wink

Sinon la même version que celle d'origine, elle n'a guère qu'un peu plus d'un an d'âge... busybox est en développement intense !



En attendant voila une version de développement pour toi :

Le script spécial : celui-là spécial pour Busybox.
Et le script "standard" : celui-là qui est standard pour tout le monde.

- Les numéros de versions sont inchangés.
- Contournement du "stat -c"
- Arrondi au 1024 pour df, et donc retrait de l'option -B1 qui demande l'espace disponible à l'octet près (par défaut on l'a par 1024)


Alors j'ai essayé rapidos avec le script busyxtrem :

NAS> bash busyXtremMerge 2.pdf.001.xtm
Vérifications ...  Erreur
Premier ou dernier fichier de taille incohérente.
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.

Toujours cette histoire de premier ou dernier fichier :L.

Hors ligne

#63 Le 06/05/2011, à 19:37

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Ah ben ça c'est fâcheux !

D'autant plus qu'il n'y a plus aucune erreur de commande affichée... ça signifie :
- soit que tes fichiers xtm sur lesquels tu fais les tests sont réellement mauvais !
- soit qu'une des commandes renvoie un résultat faux mais sans pour autant provoquer une erreur... et là c'est la tuile. mad

Afin de déterminer laquelle des deux options est la bonne (certainement la deuxième) peux-tu le relancer avec le bash en mode debug, et le script en mode verbeux c'est à dire :

bash -x busyXtremMerge 2.pdf.001.xtm -v

Et me faire un copier/coller de tout ce que ça va te raconter.

Pour info, et pourquoi ça bloque là, c'est que le script vérifie, avant de faire quoi que ce soit, que tout semble cohérent.

Pour cela, il faut le 1er fichier qui contient un bloc de données indiquant combien de fichiers on a, la taille totale du fichier d'origine, etc...
Ensuite, s'il y a des md5, ceux-ci sont dans le dernier fichier, et le dernier fichier est donc aussi nécessaire.
Même s'il n'y a pas de md5, le script calcule la cohérence de la taille en faisant :
Taille indiquée (entête) du fichier = (Taille du 1er fichier -104 [taille de l'entête]) x ( N [nb de fichiers indiqués dans l'entête] -1 ) + Taille dernier fichier corrigée [c'est à dire en cas de md5, on enlève 32 x N octets ]

Le calcul doit être juste, ainsi on sait qu'on pourra produire un résultat correct.
Or ce calcul, comme la formule l'indique, a besoin des tailles du 1ers et derniers fichiers.

Dernière modification par Zakhar (Le 06/05/2011, à 19:42)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#64 Le 11/05/2011, à 17:45

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Voici la réponse :

NAS> bash -x busyXtremMerge 2.pdf.001.xtm -v
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
++ dirname busyXtremMerge
+ THIS_SCRIPT_DIR=.
+ . ./tuXtremMerge
++ readonly 'MSG_ERROR=\E[1;31mErreur\E[0m\n'
++ MSG_ERROR='\E[1;31mErreur\E[0m\n'
++ readonly 'MSG_OK=\E[1;32mOK\E[0m'
++ MSG_OK='\E[1;32mOK\E[0m'
++ readonly 'MSG_ATTENTION=\E[1;33mAttention !\E[0m'
++ MSG_ATTENTION='\E[1;33mAttention !\E[0m'
++ readonly 'MSG_BAD_OPTION=Option - incorrecte'
++ MSG_BAD_OPTION='Option - incorrecte'
++ readonly 'MSG_TOO_MANY_PARAMS=Trop de paramètre :'
++ MSG_TOO_MANY_PARAMS='Trop de paramètre :'
++ readonly 'MSG_UNKNOWN_OPTION=Option inconnue :'
++ MSG_UNKNOWN_OPTION='Option inconnue :'
++ readonly 'MSG_UNSPECIFIED_SOURCE_FILE=Fichier source non spécifié'
++ MSG_UNSPECIFIED_SOURCE_FILE='Fichier source non spécifié'
++ readonly 'MSG_VERSION=tuXtremMerge (turbo XTM), version 1.5.5'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.5.5'
++ readonly 'MSG_OPTION_M_AND_N=Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ MSG_OPTION_M_AND_N='Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ readonly 'MSG_IGNORING_OPTION_F=L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_OPTION_F='L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_IGNORING_DEST=Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_DEST='Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_CHECKING=Vérifications ...  '
++ MSG_CHECKING='Vérifications ...  '
++ readonly 'MSG_CHECKING_FIRST_SOURCE_FILE=Vérification d'\''existence du premier fichier source...'
++ MSG_CHECKING_FIRST_SOURCE_FILE='Vérification d'\''existence du premier fichier source...'
++ readonly 'MSG_TIP=\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ MSG_TIP='\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ readonly 'MSG_SUCCESS===================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ MSG_SUCCESS='==================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ readonly 'MSG_FIRST_FILE_ERROR=001.xtm non trouvé, vide ou erreur'
++ MSG_FIRST_FILE_ERROR='001.xtm non trouvé, vide ou erreur'
++ readonly 'MSG_FIRST_FILE_FOUND=Premier fichier source trouvé :'
++ MSG_FIRST_FILE_FOUND='Premier fichier source trouvé :'
++ readonly 'MSG_OPTION_M_AND_NO_MD5=\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ MSG_OPTION_M_AND_NO_MD5='\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ readonly 'MSG_CHECKING_LAST_SOURCE_FILE=Vérification d'\''existence du dernier fichier source...'
++ MSG_CHECKING_LAST_SOURCE_FILE='Vérification d'\''existence du dernier fichier source...'
++ readonly 'MSG_LAST_FILE_ERROR=Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ MSG_LAST_FILE_ERROR='Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ readonly 'MSG_LAST_FILE_FOUND=Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ MSG_LAST_FILE_FOUND='Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ readonly 'MSG_FILE_SIZES_OK=Tailles premier et dernier fichier cohérentes.'
++ MSG_FILE_SIZES_OK='Tailles premier et dernier fichier cohérentes.'
++ readonly 'MSG_FILE_SIZES_ERROR=Premier ou dernier fichier de taille incohérente.'
++ MSG_FILE_SIZES_ERROR='Premier ou dernier fichier de taille incohérente.'
++ readonly 'MSG_NO_FILE_WRITTEN=Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_NO_FILE_WRITTEN='Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_COMPUTING_DEST=Détermination de l'\''emplacement du résultat...'
++ MSG_COMPUTING_DEST='Détermination de l'\''emplacement du résultat...'
++ readonly 'MSG_DISPLAY_DEST=Emplacement du résultat :'
++ MSG_DISPLAY_DEST='Emplacement du résultat :'
++ readonly 'MSG_CHECK_DEST_WRITABLE=Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ MSG_CHECK_DEST_WRITABLE='Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ readonly 'MSG_WARN_FORCED_OVERWRITE=\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ MSG_WARN_FORCED_OVERWRITE='\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ readonly 'MSG_WARN_OVERWRITE=\nLe fichier : %s existe déjà.\n'
++ MSG_WARN_OVERWRITE='\nLe fichier : %s existe déjà.\n'
++ readonly 'MSG_FILE_SIZE_MATCHES=La taille du fichier correspond au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_MATCHES='La taille du fichier correspond au résultat prévu dans le xtm.'
++ readonly 'MSG_FILE_SIZE_DOES_NOT_MATCH=La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_DOES_NOT_MATCH='La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ readonly 'MSG_OVERWRITE_HINT=Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ MSG_OVERWRITE_HINT='Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ readonly 'MSG_WRITE_ERROR=Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ MSG_WRITE_ERROR='Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ readonly 'MSG_INSUFFICIENT_SPACE=Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ MSG_INSUFFICIENT_SPACE='Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ readonly 'MSG_CHUNKS_AVAIL=fichiers déjà traités.'
++ MSG_CHUNKS_AVAIL='fichiers déjà traités.'
++ readonly 'MSG_INFO_DELETED_OLD_FILE=Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ MSG_INFO_DELETED_OLD_FILE='Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ readonly 'MSG_INCOHERENT_PARTIAL_FILE=La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ MSG_INCOHERENT_PARTIAL_FILE='La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ readonly 'MSG_ALL_CHECKED_OK=Vérifications pour le fichier résultat terminées.'
++ MSG_ALL_CHECKED_OK='Vérifications pour le fichier résultat terminées.'
++ readonly 'MSG_PROCESSING_START=\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ MSG_PROCESSING_START='\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ readonly 'MSG_PROCESSING_RESTART=\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ MSG_PROCESSING_RESTART='\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ readonly MSG_SEPARATOR===================================
++ MSG_SEPARATOR===================================
++ readonly 'MSG_PROCESSING_FILE=Traitement de %s%3.3u.xtm ...  '
++ MSG_PROCESSING_FILE='Traitement de %s%3.3u.xtm ...  '
++ readonly 'MSG_FILE_MISSING=*** Le fichier est manquant ou de taille incorrecte.'
++ MSG_FILE_MISSING='*** Le fichier est manquant ou de taille incorrecte.'
++ readonly 'MSG_FILE_MISSING_TIP=*** Relancez le programme lorsque le fichier sera complet.'
++ MSG_FILE_MISSING_TIP='*** Relancez le programme lorsque le fichier sera complet.'
++ readonly E_BAD_OPTION=65
++ E_BAD_OPTION=65
++ readonly E_UNKNOWN_OPTION=66
++ E_UNKNOWN_OPTION=66
++ readonly E_TOO_MANY_PARAMS=67
++ E_TOO_MANY_PARAMS=67
++ readonly E_UNSPECIFIED_SOURCE_FILE=68
++ E_UNSPECIFIED_SOURCE_FILE=68
++ readonly E_MSG_OPTION_M_AND_N=69
++ E_MSG_OPTION_M_AND_N=69
++ readonly E_FIRST_FILE_ERROR=80
++ E_FIRST_FILE_ERROR=80
++ readonly E_LAST_FILE_ERROR=81
++ E_LAST_FILE_ERROR=81
++ readonly E_FILE_SIZES_ERROR=82
++ E_FILE_SIZES_ERROR=82
++ readonly E_WRITE_ERROR=83
++ E_WRITE_ERROR=83
++ readonly E_INSUFFICIENT_SPACE=83
++ E_INSUFFICIENT_SPACE=83
++ readonly E_INCOHERENT_PARTIAL_FILE=84
++ E_INCOHERENT_PARTIAL_FILE=84
++ readonly E_WARN_OVERWRITE=96
++ E_WARN_OVERWRITE=96
++ readonly E_CRITICAL_ERROR=127
++ E_CRITICAL_ERROR=127
++ declare -i i size SOURCE_FILE_NB DEST_FILE_NAME_LENGTH SPACE_AVAIL DISK_SPACE_NEEDED DEST_FILE_SIZE CHUNK_SIZE CHUNKS_AVAIL fMD5 LAST_SOURCE_FILE_SIZE
++ OPTION_m=
++ OPTION_n=
++ OPTION_f=
++ OPTION_v=
++ declare -i OPTION_t=0
++ DISPLAY_SOURCE_FILE_NAME=
++ DISPLAY_DEST_FILE_NAME=
++ CHUNKS_AVAIL=0
++ scan_parameters 2.pdf.001.xtm -v
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=2.pdf.001.xtm
++ for param in '"$@"'
++ case "$param" in
++ '[' -v == - ']'
++ i=1
++ '[' 1 -lt 2 ']'
++ case ${param:$i:1} in
++ OPTION_v=1
++ i=2
++ '[' 2 -lt 2 ']'
++ '[' -z 2.pdf.001.xtm ']'
+++ readlink -f 2.pdf.001.xtm
+++ '[' -h 2.pdf.001.xtm ']'
+++ target=2.pdf.001.xtm
+++++ dirname 2.pdf.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/DATA/Incoming/Torrent/1
+++ '[' /volume1/DATA/Incoming/Torrent/1 '!=' / ']'
+++ temp=/volume1/DATA/Incoming/Torrent/1/
+++ echo -n /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ timing 1
++ '[' 0 -ge 1 ']'
++ '[' '!' 1 ']'
++ check_parameters
++ '[' ']'
++ v_echo 'Vérification d'\''existence du premier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du premier fichier source...'
*** Vérification d'existence du premier fichier source...
+++ echo /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/DATA/Incoming/Torrent/1/2.pdf.
+++ echo 2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=2.pdf.
++ FIRST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : 2.pdf.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : 2.pdf.001.xtm'
*** Premier fichier source trouvé : 2.pdf.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ cut '-d ' -f 5
++ CHUNK_SIZE=-103
+++ od -An -vtu4 -j92 -N4 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NB='         15'
+++ od -An -vtu8 -j96 -N8 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ DEST_FILE_SIZE='             13289755'
++ v_echo 'Vérification d'\''existence du dernier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du dernier fichier source...'
*** Vérification d'existence du dernier fichier source...
+++ printf /volume1/DATA/Incoming/Torrent/1/2.pdf.%3.3u.xtm 15
++ LAST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' 2.pdf. 15
++ v_echo 'Dernier fichier source trouvé: 2.pdf.015.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: 2.pdf.015.xtm'
*** Dernier fichier source trouvé: 2.pdf.015.xtm
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
+++ cut '-d ' -f 5
++ LAST_SOURCE_FILE_SIZE=-479
++ '[' -1921 -eq 13289755 ']'
++ echo -e '\E[1;31mErreur\E[0m\nPremier ou dernier fichier de taille incohérente.'
Erreur
Premier ou dernier fichier de taille incohérente.
++ tip 82
++ echo -e '\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.
++ exit 82

Hors ligne

#65 Le 11/05/2011, à 17:46

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Et j'ai fait le test avec des XTM autres, et qui fonctionnent en collage avec XTREMSPLIT, et ça ne fonctionne pas non plus avec les basch sad ...

Hors ligne

#66 Le 11/05/2011, à 20:24

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Ok, je vois, c'est ma fonction en remplacement du "stat -c%s" qui ne retourne pas le bon résultat.

En effet, il trouve que la taille des fichiers intermédiaires et de -103 et que la taille du dernier fichier est de -409
C'est visiblement faux car une taille de fichier négative....

Donc peux-tu faire :

ls -l 2.pdf.001.xtm

(l'option c'est un "L" minuscule) Et me coller le résultat.

Et on va donc essayer les alternatives suivantes :

ls -l 2.pdf.001.xtm | cut -d " " -f 5
ls -l 2.pdf.001.xtm | tr -s [:blank:] | cut -d " " -f 5
wc -c 2.pdf.001.xtm
wc -c 2.pdf.001.xtm | cut -d " " -f 1

Passer les commandes et me faire un collage du résultat de chaque avec la commande.

Ou toutes d'un coup (c'est peut-être plus simple pour ne faire qu'un copier/coller)

ls -l 2.pdf.001.xtm | cut -d " " -f 5
ls -l 2.pdf.001.xtm | tr -s [:blank:] | cut -d " " -f 5
wc -c 2.pdf.001.xtm
wc -c 2.pdf.001.xtm | cut -d " " -f 1

Dernière modification par Zakhar (Le 11/05/2011, à 20:25)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#67 Le 12/05/2011, à 20:08

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Voici ce que j'obtiens


NAS> ls -l 2.pdf.001.xtm | cut -d " " -f 5
1
NAS> ls -l 2.pdf.001.xtm | tr -s [:blank:] | cut -d " " -f 5
886088
NAS> wc -c 2.pdf.001.xtm
 886088 2.pdf.001.xtm
NAS> wc -c 2.pdf.001.xtm | cut -d " " -f 1

NAS>

Hors ligne

#68 Le 12/05/2011, à 23:30

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Parfait, donc la deuxième "formule" donne (probablement) la taille du fichier, je vais utiliser ça.

Tu peux recharger le script spécial : celui-là spécial pour Busybox.

... et réessayer, si possible avec l'option "-v" pour voir plus en détail ce qu'il se passe.

Si ça "plante" encore, tu peux me le faire directement en "debug", et me donner le résultat, comme d'hab :

bash -x busyXtremMerge 2.pdf.001.xtm -v
Greg360 a écrit :

Bonjour Zakhar, je suis également intéressé par ton script. J'aimerais arriver à le faire tourner sur mon Nas Syno DS-107 avec le DSM 3.1-1613. Par contre, gros, énorme point noir, je ne connais rien en Linux...

Peux-tu m'aider?

D'avance merci!!!

Greg

Bien sûr Greg.
Il te faut :
- des fichiers .xtm sur ton NAS
- récupérer les deux scripts de développement cités plus haut
- lancer la commande de collage sur ton NAS

Pour récupérer les deux scripts tu peux les télécharger direct sur ton NAS avec ces deux liens :
Le script spécial : celui-là spécial pour Busybox.
Et le script "standard" : celui-là qui est standard pour tout le monde.

Ensuite, il faut les rendre exécutables de la sorte :

chmod +x busyXtremMerge
chmod +x tuXtremMerge

Puis pour tester le recollage :

./busyXtremMerge Nom_De_Ton_Fichier_001.xtm -v

L'option "-v" permet d'avoir un peu plus de détail de ce qu'il se passe.
Si ça ne marche pas, tu me fais un copier/coller des messages que tu obtiens, si possible en mode debug comme indiqué plus haut.

Dernière modification par Zakhar (Le 13/05/2011, à 13:14)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#69 Le 13/05/2011, à 15:00

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Voici le résultat de la commande :

NAS> bash -x busyXtremMerge 2.pdf.001.xtm -v
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
++ dirname busyXtremMerge
+ THIS_SCRIPT_DIR=.
+ . ./tuXtremMerge
++ readonly 'MSG_ERROR=\E[1;31mErreur\E[0m\n'
++ MSG_ERROR='\E[1;31mErreur\E[0m\n'
++ readonly 'MSG_OK=\E[1;32mOK\E[0m'
++ MSG_OK='\E[1;32mOK\E[0m'
++ readonly 'MSG_ATTENTION=\E[1;33mAttention !\E[0m'
++ MSG_ATTENTION='\E[1;33mAttention !\E[0m'
++ readonly 'MSG_BAD_OPTION=Option - incorrecte'
++ MSG_BAD_OPTION='Option - incorrecte'
++ readonly 'MSG_TOO_MANY_PARAMS=Trop de paramètre :'
++ MSG_TOO_MANY_PARAMS='Trop de paramètre :'
++ readonly 'MSG_UNKNOWN_OPTION=Option inconnue :'
++ MSG_UNKNOWN_OPTION='Option inconnue :'
++ readonly 'MSG_UNSPECIFIED_SOURCE_FILE=Fichier source non spécifié'
++ MSG_UNSPECIFIED_SOURCE_FILE='Fichier source non spécifié'
++ readonly 'MSG_VERSION=tuXtremMerge (turbo XTM), version 1.5.5'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.5.5'
++ readonly 'MSG_OPTION_M_AND_N=Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ MSG_OPTION_M_AND_N='Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ readonly 'MSG_IGNORING_OPTION_F=L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_OPTION_F='L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_IGNORING_DEST=Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_DEST='Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_CHECKING=Vérifications ...  '
++ MSG_CHECKING='Vérifications ...  '
++ readonly 'MSG_CHECKING_FIRST_SOURCE_FILE=Vérification d'\''existence du premier fichier source...'
++ MSG_CHECKING_FIRST_SOURCE_FILE='Vérification d'\''existence du premier fichier source...'
++ readonly 'MSG_TIP=\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ MSG_TIP='\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ readonly 'MSG_SUCCESS===================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ MSG_SUCCESS='==================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ readonly 'MSG_FIRST_FILE_ERROR=001.xtm non trouvé, vide ou erreur'
++ MSG_FIRST_FILE_ERROR='001.xtm non trouvé, vide ou erreur'
++ readonly 'MSG_FIRST_FILE_FOUND=Premier fichier source trouvé :'
++ MSG_FIRST_FILE_FOUND='Premier fichier source trouvé :'
++ readonly 'MSG_OPTION_M_AND_NO_MD5=\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ MSG_OPTION_M_AND_NO_MD5='\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ readonly 'MSG_CHECKING_LAST_SOURCE_FILE=Vérification d'\''existence du dernier fichier source...'
++ MSG_CHECKING_LAST_SOURCE_FILE='Vérification d'\''existence du dernier fichier source...'
++ readonly 'MSG_LAST_FILE_ERROR=Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ MSG_LAST_FILE_ERROR='Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ readonly 'MSG_LAST_FILE_FOUND=Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ MSG_LAST_FILE_FOUND='Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ readonly 'MSG_FILE_SIZES_OK=Tailles premier et dernier fichier cohérentes.'
++ MSG_FILE_SIZES_OK='Tailles premier et dernier fichier cohérentes.'
++ readonly 'MSG_FILE_SIZES_ERROR=Premier ou dernier fichier de taille incohérente.'
++ MSG_FILE_SIZES_ERROR='Premier ou dernier fichier de taille incohérente.'
++ readonly 'MSG_NO_FILE_WRITTEN=Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_NO_FILE_WRITTEN='Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_COMPUTING_DEST=Détermination de l'\''emplacement du résultat...'
++ MSG_COMPUTING_DEST='Détermination de l'\''emplacement du résultat...'
++ readonly 'MSG_DISPLAY_DEST=Emplacement du résultat :'
++ MSG_DISPLAY_DEST='Emplacement du résultat :'
++ readonly 'MSG_CHECK_DEST_WRITABLE=Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ MSG_CHECK_DEST_WRITABLE='Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ readonly 'MSG_WARN_FORCED_OVERWRITE=\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ MSG_WARN_FORCED_OVERWRITE='\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ readonly 'MSG_WARN_OVERWRITE=\nLe fichier : %s existe déjà.\n'
++ MSG_WARN_OVERWRITE='\nLe fichier : %s existe déjà.\n'
++ readonly 'MSG_FILE_SIZE_MATCHES=La taille du fichier correspond au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_MATCHES='La taille du fichier correspond au résultat prévu dans le xtm.'
++ readonly 'MSG_FILE_SIZE_DOES_NOT_MATCH=La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_DOES_NOT_MATCH='La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ readonly 'MSG_OVERWRITE_HINT=Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ MSG_OVERWRITE_HINT='Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ readonly 'MSG_WRITE_ERROR=Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ MSG_WRITE_ERROR='Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ readonly 'MSG_INSUFFICIENT_SPACE=Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ MSG_INSUFFICIENT_SPACE='Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ readonly 'MSG_CHUNKS_AVAIL=fichiers déjà traités.'
++ MSG_CHUNKS_AVAIL='fichiers déjà traités.'
++ readonly 'MSG_INFO_DELETED_OLD_FILE=Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ MSG_INFO_DELETED_OLD_FILE='Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ readonly 'MSG_INCOHERENT_PARTIAL_FILE=La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ MSG_INCOHERENT_PARTIAL_FILE='La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ readonly 'MSG_ALL_CHECKED_OK=Vérifications pour le fichier résultat terminées.'
++ MSG_ALL_CHECKED_OK='Vérifications pour le fichier résultat terminées.'
++ readonly 'MSG_PROCESSING_START=\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ MSG_PROCESSING_START='\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ readonly 'MSG_PROCESSING_RESTART=\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ MSG_PROCESSING_RESTART='\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ readonly MSG_SEPARATOR===================================
++ MSG_SEPARATOR===================================
++ readonly 'MSG_PROCESSING_FILE=Traitement de %s%3.3u.xtm ...  '
++ MSG_PROCESSING_FILE='Traitement de %s%3.3u.xtm ...  '
++ readonly 'MSG_FILE_MISSING=*** Le fichier est manquant ou de taille incorrecte.'
++ MSG_FILE_MISSING='*** Le fichier est manquant ou de taille incorrecte.'
++ readonly 'MSG_FILE_MISSING_TIP=*** Relancez le programme lorsque le fichier sera complet.'
++ MSG_FILE_MISSING_TIP='*** Relancez le programme lorsque le fichier sera complet.'
++ readonly E_BAD_OPTION=65
++ E_BAD_OPTION=65
++ readonly E_UNKNOWN_OPTION=66
++ E_UNKNOWN_OPTION=66
++ readonly E_TOO_MANY_PARAMS=67
++ E_TOO_MANY_PARAMS=67
++ readonly E_UNSPECIFIED_SOURCE_FILE=68
++ E_UNSPECIFIED_SOURCE_FILE=68
++ readonly E_MSG_OPTION_M_AND_N=69
++ E_MSG_OPTION_M_AND_N=69
++ readonly E_FIRST_FILE_ERROR=80
++ E_FIRST_FILE_ERROR=80
++ readonly E_LAST_FILE_ERROR=81
++ E_LAST_FILE_ERROR=81
++ readonly E_FILE_SIZES_ERROR=82
++ E_FILE_SIZES_ERROR=82
++ readonly E_WRITE_ERROR=83
++ E_WRITE_ERROR=83
++ readonly E_INSUFFICIENT_SPACE=83
++ E_INSUFFICIENT_SPACE=83
++ readonly E_INCOHERENT_PARTIAL_FILE=84
++ E_INCOHERENT_PARTIAL_FILE=84
++ readonly E_WARN_OVERWRITE=96
++ E_WARN_OVERWRITE=96
++ readonly E_CRITICAL_ERROR=127
++ E_CRITICAL_ERROR=127
++ declare -i i size SOURCE_FILE_NB DEST_FILE_NAME_LENGTH SPACE_AVAIL DISK_SPACE_NEEDED DEST_FILE_SIZE CHUNK_SIZE CHUNKS_AVAIL fMD5 LAST_SOURCE_FILE_SIZE
++ OPTION_m=
++ OPTION_n=
++ OPTION_f=
++ OPTION_v=
++ declare -i OPTION_t=0
++ DISPLAY_SOURCE_FILE_NAME=
++ DISPLAY_DEST_FILE_NAME=
++ CHUNKS_AVAIL=0
++ scan_parameters 2.pdf.001.xtm -v
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=2.pdf.001.xtm
++ for param in '"$@"'
++ case "$param" in
++ '[' -v == - ']'
++ i=1
++ '[' 1 -lt 2 ']'
++ case ${param:$i:1} in
++ OPTION_v=1
++ i=2
++ '[' 2 -lt 2 ']'
++ '[' -z 2.pdf.001.xtm ']'
+++ readlink -f 2.pdf.001.xtm
+++ '[' -h 2.pdf.001.xtm ']'
+++ target=2.pdf.001.xtm
+++++ dirname 2.pdf.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/DATA/Incoming/Torrent/1
+++ '[' /volume1/DATA/Incoming/Torrent/1 '!=' / ']'
+++ temp=/volume1/DATA/Incoming/Torrent/1/
+++ echo -n /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ timing 1
++ '[' 0 -ge 1 ']'
++ '[' '!' 1 ']'
++ check_parameters
++ '[' ']'
++ v_echo 'Vérification d'\''existence du premier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du premier fichier source...'
*** Vérification d'existence du premier fichier source...
+++ echo /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/DATA/Incoming/Torrent/1/2.pdf.
+++ echo 2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=2.pdf.
++ FIRST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : 2.pdf.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : 2.pdf.001.xtm'
*** Premier fichier source trouvé : 2.pdf.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ cut '-d ' -f 5
++ CHUNK_SIZE=-103
+++ od -An -vtu4 -j92 -N4 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NB='         15'
+++ od -An -vtu8 -j96 -N8 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ DEST_FILE_SIZE='             13289755'
++ v_echo 'Vérification d'\''existence du dernier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du dernier fichier source...'
*** Vérification d'existence du dernier fichier source...
+++ printf /volume1/DATA/Incoming/Torrent/1/2.pdf.%3.3u.xtm 15
++ LAST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' 2.pdf. 15
++ v_echo 'Dernier fichier source trouvé: 2.pdf.015.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: 2.pdf.015.xtm'
*** Dernier fichier source trouvé: 2.pdf.015.xtm
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
+++ cut '-d ' -f 5
++ LAST_SOURCE_FILE_SIZE=-479
++ '[' -1921 -eq 13289755 ']'
++ echo -e '\E[1;31mErreur\E[0m\nPremier ou dernier fichier de taille incohérente.'
Erreur
Premier ou dernier fichier de taille incohérente.
++ tip 82
++ echo -e '\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.
++ exit 82
NAS>

Encore une fois, merci pour le temps que tu passes dessus !

Dernière modification par stadros83 (Le 13/05/2011, à 15:02)

Hors ligne

#70 Le 13/05/2011, à 16:18

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

stadros83 a écrit :

Voici le résultat de la commande :

Encore une fois, merci pour le temps que tu passes dessus !

Bah, juste un quart d'heure par-ci par-là maintenant que le plus gros est fait !

Et excuse-moi, j'avais pas mis en ligne le bon fichier, c'était toujours le même fichier... donc test pour rien, c'est le même résultat que précédemment, ce qui est normal puisque le script avait pas été modifié !..  roll

Peux-tu reprendre le fichier dans le dernier lien, le script spécial ici : celui-là spécial pour Busybox. et refaire le test.

Dernière modification par Zakhar (Le 13/05/2011, à 16:19)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#71 Le 15/05/2011, à 14:52

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Voici le résultat :

NAS> bash -x busyXtremMerge 2.pdf.001.xtm -v
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 0.9.0'
++ dirname busyXtremMerge
+ THIS_SCRIPT_DIR=.
+ . ./tuXtremMerge
++ readonly 'MSG_ERROR=\E[1;31mErreur\E[0m\n'
++ MSG_ERROR='\E[1;31mErreur\E[0m\n'
++ readonly 'MSG_OK=\E[1;32mOK\E[0m'
++ MSG_OK='\E[1;32mOK\E[0m'
++ readonly 'MSG_ATTENTION=\E[1;33mAttention !\E[0m'
++ MSG_ATTENTION='\E[1;33mAttention !\E[0m'
++ readonly 'MSG_BAD_OPTION=Option - incorrecte'
++ MSG_BAD_OPTION='Option - incorrecte'
++ readonly 'MSG_TOO_MANY_PARAMS=Trop de paramètre :'
++ MSG_TOO_MANY_PARAMS='Trop de paramètre :'
++ readonly 'MSG_UNKNOWN_OPTION=Option inconnue :'
++ MSG_UNKNOWN_OPTION='Option inconnue :'
++ readonly 'MSG_UNSPECIFIED_SOURCE_FILE=Fichier source non spécifié'
++ MSG_UNSPECIFIED_SOURCE_FILE='Fichier source non spécifié'
++ readonly 'MSG_VERSION=tuXtremMerge (turbo XTM), version 1.5.5'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.5.5'
++ readonly 'MSG_OPTION_M_AND_N=Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ MSG_OPTION_M_AND_N='Vous ne pouvez spécifier les options \E[1;32m-m\E[0m et \E[1;32m-n\E[0m simultanément.'
++ readonly 'MSG_IGNORING_OPTION_F=L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_OPTION_F='L'\''option \E[1;32m-f\E[0m sera ignorée puisque l'\''option -\E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_IGNORING_DEST=Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_IGNORING_DEST='Le nom du fichier résultat sera ignoré puisque l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_CHECKING=Vérifications ...  '
++ MSG_CHECKING='Vérifications ...  '
++ readonly 'MSG_CHECKING_FIRST_SOURCE_FILE=Vérification d'\''existence du premier fichier source...'
++ MSG_CHECKING_FIRST_SOURCE_FILE='Vérification d'\''existence du premier fichier source...'
++ readonly 'MSG_TIP=\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ MSG_TIP='\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
++ readonly 'MSG_SUCCESS===================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ MSG_SUCCESS='==================================================\n\E[1;32mToutes les opérations sont terminées avec succès !\E[0m'
++ readonly 'MSG_FIRST_FILE_ERROR=001.xtm non trouvé, vide ou erreur'
++ MSG_FIRST_FILE_ERROR='001.xtm non trouvé, vide ou erreur'
++ readonly 'MSG_FIRST_FILE_FOUND=Premier fichier source trouvé :'
++ MSG_FIRST_FILE_FOUND='Premier fichier source trouvé :'
++ readonly 'MSG_OPTION_M_AND_NO_MD5=\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ MSG_OPTION_M_AND_NO_MD5='\E[1;33mRien à faire !\E[0m\nL'\''option \E[1;32m-m\E[0m est spécifiée, or il n'\''y a pas MD5 à vérifier dans ces fichiers xtm.'
++ readonly 'MSG_CHECKING_LAST_SOURCE_FILE=Vérification d'\''existence du dernier fichier source...'
++ MSG_CHECKING_LAST_SOURCE_FILE='Vérification d'\''existence du dernier fichier source...'
++ readonly 'MSG_LAST_FILE_ERROR=Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ MSG_LAST_FILE_ERROR='Fichier %s%3.3u.xtm non trouvé ou vide\n'
++ readonly 'MSG_LAST_FILE_FOUND=Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ MSG_LAST_FILE_FOUND='Dernier fichier source trouvé: %s%3.3u.xtm\n'
++ readonly 'MSG_FILE_SIZES_OK=Tailles premier et dernier fichier cohérentes.'
++ MSG_FILE_SIZES_OK='Tailles premier et dernier fichier cohérentes.'
++ readonly 'MSG_FILE_SIZES_ERROR=Premier ou dernier fichier de taille incohérente.'
++ MSG_FILE_SIZES_ERROR='Premier ou dernier fichier de taille incohérente.'
++ readonly 'MSG_NO_FILE_WRITTEN=Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ MSG_NO_FILE_WRITTEN='Aucun fichier résultat ne sera écrit car l'\''option \E[1;32m-m\E[0m est spécifiée.'
++ readonly 'MSG_COMPUTING_DEST=Détermination de l'\''emplacement du résultat...'
++ MSG_COMPUTING_DEST='Détermination de l'\''emplacement du résultat...'
++ readonly 'MSG_DISPLAY_DEST=Emplacement du résultat :'
++ MSG_DISPLAY_DEST='Emplacement du résultat :'
++ readonly 'MSG_CHECK_DEST_WRITABLE=Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ MSG_CHECK_DEST_WRITABLE='Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ readonly 'MSG_WARN_FORCED_OVERWRITE=\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ MSG_WARN_FORCED_OVERWRITE='\nEcrasement forcé par l'\''option \E[1;32m-f\E[0m, le fichier résultat existe déjà.'
++ readonly 'MSG_WARN_OVERWRITE=\nLe fichier : %s existe déjà.\n'
++ MSG_WARN_OVERWRITE='\nLe fichier : %s existe déjà.\n'
++ readonly 'MSG_FILE_SIZE_MATCHES=La taille du fichier correspond au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_MATCHES='La taille du fichier correspond au résultat prévu dans le xtm.'
++ readonly 'MSG_FILE_SIZE_DOES_NOT_MATCH=La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ MSG_FILE_SIZE_DOES_NOT_MATCH='La taille du fichier ne correspond pas au résultat prévu dans le xtm.'
++ readonly 'MSG_OVERWRITE_HINT=Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ MSG_OVERWRITE_HINT='Si vous désirez ré-écrire ce fichier effacez/renommez-le au préalable ou spécifiez l'\''option \E[1;32m-f\E[0m pour forcer l'\''écrasement'
++ readonly 'MSG_WRITE_ERROR=Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ MSG_WRITE_ERROR='Ecriture de : %s impossible.\nVeuillez vérifier que vous avez l'\''autorisation d'\''écrire ce fichier et que son nom est correct.\n'
++ readonly 'MSG_INSUFFICIENT_SPACE=Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ MSG_INSUFFICIENT_SPACE='Espace insuffisant sur %s pour créer le fichier %s.\nEspace nécessaire : %'\''u\nEspace disponible : %'\''u\n'
++ readonly 'MSG_CHUNKS_AVAIL=fichiers déjà traités.'
++ MSG_CHUNKS_AVAIL='fichiers déjà traités.'
++ readonly 'MSG_INFO_DELETED_OLD_FILE=Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ MSG_INFO_DELETED_OLD_FILE='Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ readonly 'MSG_INCOHERENT_PARTIAL_FILE=La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ MSG_INCOHERENT_PARTIAL_FILE='La taille du fichier partiel n'\''est pas un multiple de la taille de découpage des fichiers xtm.\nSupprimez ce fichier (%s.part) ou utilisez l'\''option \E[1;32m-f\E[0m\n'
++ readonly 'MSG_ALL_CHECKED_OK=Vérifications pour le fichier résultat terminées.'
++ MSG_ALL_CHECKED_OK='Vérifications pour le fichier résultat terminées.'
++ readonly 'MSG_PROCESSING_START=\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ MSG_PROCESSING_START='\E[1mTraitement optimisé des %u fichiers\E[0m\n'
++ readonly 'MSG_PROCESSING_RESTART=\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ MSG_PROCESSING_RESTART='\E[1mReprise du traitement à partir du fichier %u\E[0m\nReste à traiter %u fichier(s)\n'
++ readonly MSG_SEPARATOR===================================
++ MSG_SEPARATOR===================================
++ readonly 'MSG_PROCESSING_FILE=Traitement de %s%3.3u.xtm ...  '
++ MSG_PROCESSING_FILE='Traitement de %s%3.3u.xtm ...  '
++ readonly 'MSG_FILE_MISSING=*** Le fichier est manquant ou de taille incorrecte.'
++ MSG_FILE_MISSING='*** Le fichier est manquant ou de taille incorrecte.'
++ readonly 'MSG_FILE_MISSING_TIP=*** Relancez le programme lorsque le fichier sera complet.'
++ MSG_FILE_MISSING_TIP='*** Relancez le programme lorsque le fichier sera complet.'
++ readonly E_BAD_OPTION=65
++ E_BAD_OPTION=65
++ readonly E_UNKNOWN_OPTION=66
++ E_UNKNOWN_OPTION=66
++ readonly E_TOO_MANY_PARAMS=67
++ E_TOO_MANY_PARAMS=67
++ readonly E_UNSPECIFIED_SOURCE_FILE=68
++ E_UNSPECIFIED_SOURCE_FILE=68
++ readonly E_MSG_OPTION_M_AND_N=69
++ E_MSG_OPTION_M_AND_N=69
++ readonly E_FIRST_FILE_ERROR=80
++ E_FIRST_FILE_ERROR=80
++ readonly E_LAST_FILE_ERROR=81
++ E_LAST_FILE_ERROR=81
++ readonly E_FILE_SIZES_ERROR=82
++ E_FILE_SIZES_ERROR=82
++ readonly E_WRITE_ERROR=83
++ E_WRITE_ERROR=83
++ readonly E_INSUFFICIENT_SPACE=83
++ E_INSUFFICIENT_SPACE=83
++ readonly E_INCOHERENT_PARTIAL_FILE=84
++ E_INCOHERENT_PARTIAL_FILE=84
++ readonly E_WARN_OVERWRITE=96
++ E_WARN_OVERWRITE=96
++ readonly E_CRITICAL_ERROR=127
++ E_CRITICAL_ERROR=127
++ declare -i i size SOURCE_FILE_NB DEST_FILE_NAME_LENGTH SPACE_AVAIL DISK_SPACE_NEEDED DEST_FILE_SIZE CHUNK_SIZE CHUNKS_AVAIL fMD5 LAST_SOURCE_FILE_SIZE
++ OPTION_m=
++ OPTION_n=
++ OPTION_f=
++ OPTION_v=
++ declare -i OPTION_t=0
++ DISPLAY_SOURCE_FILE_NAME=
++ DISPLAY_DEST_FILE_NAME=
++ CHUNKS_AVAIL=0
++ scan_parameters 2.pdf.001.xtm -v
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=2.pdf.001.xtm
++ for param in '"$@"'
++ case "$param" in
++ '[' -v == - ']'
++ i=1
++ '[' 1 -lt 2 ']'
++ case ${param:$i:1} in
++ OPTION_v=1
++ i=2
++ '[' 2 -lt 2 ']'
++ '[' -z 2.pdf.001.xtm ']'
+++ readlink -f 2.pdf.001.xtm
+++ '[' -h 2.pdf.001.xtm ']'
+++ target=2.pdf.001.xtm
+++++ dirname 2.pdf.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/DATA/Incoming/Torrent/1
+++ '[' /volume1/DATA/Incoming/Torrent/1 '!=' / ']'
+++ temp=/volume1/DATA/Incoming/Torrent/1/
+++ echo -n /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ timing 1
++ '[' 0 -ge 1 ']'
++ '[' '!' 1 ']'
++ check_parameters
++ '[' ']'
++ v_echo 'Vérification d'\''existence du premier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du premier fichier source...'
*** Vérification d'existence du premier fichier source...
+++ echo /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/DATA/Incoming/Torrent/1/2.pdf.
+++ echo 2.pdf.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=2.pdf.
++ FIRST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : 2.pdf.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : 2.pdf.001.xtm'
*** Premier fichier source trouvé : 2.pdf.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
+++ ls -l 2.pdf.001.xtm
+++ cut -d ' ' -f 5
+++ tr -s '[:blank:]'
++ CHUNK_SIZE=885984
+++ od -An -vtu4 -j92 -N4 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ SOURCE_FILE_NB='         15'
+++ od -An -vtu8 -j96 -N8 /volume1/DATA/Incoming/Torrent/1/2.pdf.001.xtm
++ DEST_FILE_SIZE='             13289755'
++ v_echo 'Vérification d'\''existence du dernier fichier source...'
++ '[' 1 ']'
++ echo -e '*** Vérification d'\''existence du dernier fichier source...'
*** Vérification d'existence du dernier fichier source...
+++ printf /volume1/DATA/Incoming/Torrent/1/2.pdf.%3.3u.xtm 15
++ LAST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' 2.pdf. 15
++ v_echo 'Dernier fichier source trouvé: 2.pdf.015.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: 2.pdf.015.xtm'
*** Dernier fichier source trouvé: 2.pdf.015.xtm
+++ stat -c%s /volume1/DATA/Incoming/Torrent/1/2.pdf.015.xtm
+++ ls -l 2.pdf.001.xtm
+++ cut -d ' ' -f 5
+++ tr -s '[:blank:]'
++ LAST_SOURCE_FILE_SIZE=885608
++ '[' 13289384 -eq 13289755 ']'
++ echo -e '\E[1;31mErreur\E[0m\nPremier ou dernier fichier de taille incohérente.'
Erreur
Premier ou dernier fichier de taille incohérente.
++ tip 82
++ echo -e '\E[1;34mAstuce :\E[0;34m il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.\nVous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.\E[0m'
Astuce : il faut le premier et le dernier fichier, corrects et complets, pour que le script puisse fonctionner.
Vous pouvez optimiser le résultat en récupérant ces deux fichiers en priorité.
++ exit 82
NAS>

Hors ligne

#72 Le 15/05/2011, à 16:45

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Très étrange !

stadros83 a écrit :

Voici le résultat :

++ '[' 13289384 -eq 13289755 ']'

Là on en est à : 13 289 384 en taille calculée, et à 13 289 755 en taille indiquée dans l'entête du XTM.

Peux-tu faire

hd 2.pdf.001.xtm -n 104
ls -l 2.pdf.???.xtm

et coller le résultat des deux commandes.

...parce que là j'ai du mal à voir où se situe l'erreur de calcul. D'autant qu'un écart impair est quasiment impossible vu que l'entête et le MD5 ont tous deux une taille paire.
As-tu aussi vérifié ces fichiers là en les assemblant avec le programme d'origine ?

Dernière modification par Zakhar (Le 15/05/2011, à 16:47)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#73 Le 16/05/2011, à 14:48

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Ok j'essaierai de faire ça ce soir.

Par contre pour les fichiers normalement pas de soucis, je peux les recoller avec XTREMSPLIT.

J'ai aussi essayé avec des fichiers récupérés ailleurs. Je recolle bien avec Xtremsplit mais Erreur avec le script.

Hors ligne

#74 Le 16/05/2011, à 17:51

stadros83

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Alors :

NAS> hd 2.pdf.001.xtm -n 104
-ash: hd: not found

A priori pas de commande HD ?!

NAS> ls -l 2.pdf.???.xtm
-rwxrwxrwx    1 admin    users      886088 Apr 24 15:54 2.pdf.001.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.002.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.003.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.004.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.005.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.006.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.007.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.008.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.009.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.010.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.011.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.012.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.013.xtm
-rwxrwxrwx    1 admin    users      885984 Apr 24 15:54 2.pdf.014.xtm
-rwxrwxrwx    1 admin    users      886459 Apr 24 15:54 2.pdf.015.xtm

Hors ligne

#75 Le 16/05/2011, à 23:36

Zakhar

Re : tuXtremMerge (XtremSplit TURBO !) - Recoller vos fichier .xtm

Vu !

Et au temps pour moi, quand on travaille sur plusieurs PC on finit par s'emmêler les pinceaux. La fonction qui calculait la taille des fichiers avait "en dur" le nom de ton premier fichier... d'où l'erreur de 371 sur le résultat (l'écart de taille entre le premier et le dernier fichier).

Tu reprendre le fichier du script spécial ici : celui-là spécial pour Busybox. et refaire le test.

... et à mon tour de te remercier pour ta patience.

(Pour le hd c'est pas grave, il a l'air d'avoir tout récupéré sans se planter avec le od)

Dernière modification par Zakhar (Le 16/05/2011, à 23:45)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne