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.

#151 Le 01/06/2011, à 21:39

Zakhar

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

Non, là il y a probablement une anomalie hmm

Sauf si tu écrivais sur des disquettes ou si tu fais ça à travers un modem en faisant traverser deux fois les octets, ou si ton disque n'a que des mauvais secteurs, ça te fait une vitesse de 40K/s. A ce rythme tu as plus vite fait de mettre les fichiers sur ton PC, les coller, et les renvoyer sur le NAS !..

Tu es bien en SSH ou Telnet (putty ?) sur le NAS directement n'est-ce pas ?

De plus, s'il n'a pas marqué qu'il est au fichier 2... c'est qu'il y est pas hmm

Donc tu peux faire un CTRL-C

...et recommencer la manipulation. Tu devrais constater qu'il boucle... ou qu'il reste suspendu sur une instruction. Là tu fais un CTRL-C à nouveau (attendre 30 sec devrait suffire) et tu me mets les 50 ou 100 dernières lignes.

Dernière modification par Zakhar (Le 01/06/2011, à 21:40)


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

Hors ligne

#152 Le 01/06/2011, à 21:45

zootroopa

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

Je suis effectivement en ssh sur le NAS
Je veux bien volontiers refaire la manip. Quels arguments (autres que -vttf) dois-je mettre pour augmenter le niveau de log?  smile

Hors ligne

#153 Le 01/06/2011, à 21:47

Zakhar

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

Ceux là vont bien, par contre faut le faire en mode trace, donc avec

bash -x busyXtremMerge ....etc...

Tu relances, tu attends 30 sec, et re CTRL-C puis tu envoies le listing des 100 dernières lignes que je voies où il coince, ou s'il "boucle".

Dernière modification par Zakhar (Le 01/06/2011, à 21:48)


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

Hors ligne

#154 Le 01/06/2011, à 21:52

zootroopa

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

voilà le log! big_smile
Ca ressemble plus à du coinçage qu'à du bouclage, non?

DiskStation> bash -x ./busyXtremMerge Dante.mkv.001.xtm -vttf
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
++ 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.6.1'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.6.1'
++ 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=
++ declare -i CHUNKS_AVAIL=0
++ set -o pipefail
++ scan_parameters Dante.mkv.001.xtm -vttf
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=Dante.mkv.001.xtm
++ for param in '"$@"'
++ case "$param" in
++ '[' -vttf == - ']'
++ i=1
++ '[' 1 -lt 5 ']'
++ case ${param:$i:1} in
++ OPTION_v=1
++ i=2
++ '[' 2 -lt 5 ']'
++ case ${param:$i:1} in
++ '[' tt = tt ']'
++ OPTION_t=2
++ i=3
++ i=4
++ '[' 4 -lt 5 ']'
++ case ${param:$i:1} in
++ OPTION_f=1
++ i=5
++ '[' 5 -lt 5 ']'
++ '[' -z Dante.mkv.001.xtm ']'
+++ readlink -f Dante.mkv.001.xtm
+++ '[' -h Dante.mkv.001.xtm ']'
+++ target=Dante.mkv.001.xtm
+++++ dirname Dante.mkv.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/VIDEO/BRRIP/xtm
+++ '[' /volume1/VIDEO/BRRIP/xtm '!=' / ']'
+++ temp=/volume1/VIDEO/BRRIP/xtm/
+++ echo -n /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ timing 1
++ '[' 2 -ge 1 ']'
++ date +%T.%N
22:51:27.%N
++ '[' '!' 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/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.
+++ echo Dante.mkv.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=Dante.mkv.
++ FIRST_SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ '[' '!' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm ']'
++ '[' '!' -s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : Dante.mkv.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : Dante.mkv.001.xtm'
*** Premier fichier source trouvé : Dante.mkv.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu1 = -vtu8 ']'
+++ command od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ tr -s '[:blank:]'
+++ cut '-d ' -f 5
++ CHUNK_SIZE=1043333120
+++ od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu4 = -vtu8 ']'
+++ command od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ SOURCE_FILE_NB='          5'
+++ od -An -vtu8 -j96 -N8 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu8 = -vtu8 ']'
++++ command od -An -vtu4 -j96 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++++ od -An -vtu4 -j96 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ low='  108621594'
++++ command od -An -vtu4 -j100 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++++ od -An -vtu4 -j100 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ high='          1'
+++ echo 4403588890
++ DEST_FILE_SIZE=4403588890
++ 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/VIDEO/BRRIP/xtm/Dante.mkv.%3.3u.xtm 5
++ LAST_SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
++ '[' '!' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm ']'
++ '[' '!' -s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' Dante.mkv. 5
++ v_echo 'Dernier fichier source trouvé: Dante.mkv.005.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: Dante.mkv.005.xtm'
*** Dernier fichier source trouvé: Dante.mkv.005.xtm
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
+++ tr -s '[:blank:]'
+++ cut '-d ' -f 5
++ LAST_SOURCE_FILE_SIZE=230256410
++ '[' 4403588890 -eq 4403588890 ']'
++ v_echo 'Tailles premier et dernier fichier cohérentes.'
++ '[' 1 ']'
++ echo -e '*** Tailles premier et dernier fichier cohérentes.'
*** Tailles premier et dernier fichier cohérentes.
++ '[' ']'
++ v_echo 'Détermination de l'\''emplacement du résultat...'
++ '[' 1 ']'
++ echo -e '*** Détermination de l'\''emplacement du résultat...'
*** Détermination de l'emplacement du résultat...
++ '[' -z '' ']'
+++ od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu1 = -vtu8 ']'
+++ command od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ DEST_FILE_NAME_LENGTH='   9'
+++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=1 skip=41 count=9
++ DEFAULT_DEST_FILE_NAME=Dante.mkv
++ '[' -z '' ']'
++ this_file_radix=
++ DISPLAY_DEST_FILE_NAME=Dante.mkv
++ v_echo 'Emplacement du résultat : Dante.mkv'
++ '[' 1 ']'
++ echo -e '*** Emplacement du résultat : Dante.mkv'
*** Emplacement du résultat : Dante.mkv
+++ readlink -fn Dante.mkv
+++ '[' -h Dante.mkv ']'
+++ target=Dante.mkv
+++++ dirname Dante.mkv
++++ cd .
++++ pwd
+++ temp=/volume1/VIDEO/BRRIP/xtm
+++ '[' /volume1/VIDEO/BRRIP/xtm '!=' / ']'
+++ temp=/volume1/VIDEO/BRRIP/xtm/
+++ echo -n /volume1/VIDEO/BRRIP/xtm/Dante.mkv
++ DEST_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv
++ DEST_FILE_NAME_PART=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ v_echo 'Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ '[' 1 ']'
++ echo -e '*** Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
*** Vérification de la possibilité d'écrire le résultat : existence, autorisation d'écriture, espace disponible, etc...
++ '[' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv ']'
++ '[' -s /volume1/VIDEO/BRRIP/xtm/Dante.mkv ']'
++ touch /volume1/VIDEO/BRRIP/xtm/Dante.mkv /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ '[' 0 -ne 0 ']'
+++ df /volume1/VIDEO/BRRIP/xtm/Dante.mkv
+++ sed -n 2p
++ TMP='/dev/vg1000/lv       2879606320 367779256 2511724664  13% /volume1'
+++ echo /dev/vg1000/lv 2879606320 367779256 2511724664 13% /volume1
+++ cut '-d ' -f 4
++ SPACE_AVAIL=2572006054912
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
+++ cut '-d ' -f 5
+++ tr -s '[:blank:]'
++ size=2975942
++ DISK_SPACE_NEEDED=4400612948
++ '[' 4400612948 == 0 ']'
++ '[' 2572006054912 -lt 4400612948 ']'
++ CHUNKS_AVAIL=0
++ '[' 2975942 -eq 0 ']'
++ '[' 1 ']'
++ v_echo 'Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
++ '[' 1 ']'
++ echo -e '*** Fichier partiel incohérent supprimé par option \E[1;32m-f\E[0m'
*** Fichier partiel incohérent supprimé par option -f
++ rm /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ CHUNKS_AVAIL=0
++ v_echo 'Vérifications pour le fichier résultat terminées.'
++ '[' 1 ']'
++ echo -e '*** Vérifications pour le fichier résultat terminées.'
*** Vérifications pour le fichier résultat terminées.
++ '[' ']'
++ '[' 1 -eq 0 ']'
++ '[' ']'
++ MD5_PROG=md5sum
++ '[' '!' 1 ']'
++ timing 1
++ '[' 2 -ge 1 ']'
++ date +%T.%N
22:51:27.%N
++ '[' 0 -eq 0 ']'
++ printf '\E[1mTraitement optimisé des %u fichiers\E[0m\n' 5
Traitement optimisé des 5 fichiers
++ echo ==================================
==================================
++ i=0
++ ((  0 < 5  ))
++ '[' 1 -eq 1 ']'
+++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm bs=1 skip=230256410 count=32
++ this_file_MD5=66374F5F2D5E2F416449DADD7B5CC0F6
++ i=1
+++ printf %s%3.3u /volume1/VIDEO/BRRIP/xtm/Dante.mkv. 1
++ this_file_radix=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001
++ printf 'Traitement de %s%3.3u.xtm ...  ' Dante.mkv. 1
Traitement de Dante.mkv.001.xtm ...  ++ case $i in
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=104 count=1
++ md5sum --status -c /dev/fd/63
+++ echo '66374F5F2D5E2F416449DADD7B5CC0F6 *-'
++ command md5sum
++ md5sum
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=8 skip=13 count=499
+++ echo 66374F5F2D5E2F416449DADD7B5CC0F6
++ tee /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ grep -iq 66374F5F2D5E2F416449DADD7B5CC0F6
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=4096 skip=1

Dernière modification par zootroopa (Le 01/06/2011, à 21:52)

Hors ligne

#155 Le 01/06/2011, à 22:05

Zakhar

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

Oui... bizarre.

... sauf si ton NAS fait des GROS trucs en parallèle, genre une sauvegarde de masse.

Par exemple là je viens de faire un test :

Mon fichier de test de 4,5G, pas d'autre opération, disque sur lui-même : 1m30
En parallèle avec une grosse copie sur mon PC portable (je prépare mes 6h de TGV de demain !) : 9min

Soit environ 6 fois plus lorsque le disque fait autre chose... et Firefox dont les fichiers sont sur le même disque semble presque bloqué pendant plusieurs secondes.

Mais si le disque ne fait rien d'autre c'est pas normal...

Laisse le tourner en mode trace jusqu'à ce que le fichier .part dépasse la taille du premier fichier... et là on saura s'il y a vraiment un bug ou si c'est juste un ralentissement dû à d'autres opérations.

En tout cas tu vois, un temps "normal" pour un fichier de 4G c'est plutôt autour de 1m30 ou un peu plus si ton disque est un peu plus lent que le mien (un WD amélioré RAID, c'est plutôt amélioré robustesse, sa vitesse est dans la bonne moyenne des disques de sa génération, et il a déjà presque 2 ans).

Si c'est vraiment un "coinçage"... je vois pas trop, tout à l'air normal... mais parfois la nuit porte conseil et il pourrait me venir des idées !

Dernière modification par Zakhar (Le 01/06/2011, à 22:11)


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

Hors ligne

#156 Le 01/06/2011, à 22:26

zootroopa

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

Je te propose effectivement de reprendre cela demain.
J'espère qu'au sortir de la journée et après les 6 heures de tgv, tu seras encore frais smile
Je te posterai donc la trace du test jusqu'au dépassement du fichier 1
Merci encore et à demain.

edit: est-ce que le fait que je sois sur un système de sauvegarde RAID (SHR pour être plus précis) pourrait interférer?
C'est un peu une bouteille à la mer sachant que :
j'y connais vraiment pas grand chose
l'extraction de fichiers de cette taille, à partir de archives RAR multiples, met un temps tout à fait raisonnable

Dernière modification par zootroopa (Le 01/06/2011, à 22:30)

Hors ligne

#157 Le 01/06/2011, à 22:27

Zakhar

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

Et là je vois un truc bizarre sur mon Ubuntu.

On voit la trace passer dans les "contournements" pour md5sum et pour od... mais pas pour dd.

Il y a peut-être un piste... on se fait signe demain donc.


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

Hors ligne

#158 Le 02/06/2011, à 07:35

Zakhar

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

La nuit ne m'a pas apporté la "révélation", mais m'a conseillé de procéder avec logique.

Ainsi, pour tâcher de comprendre d'où vient le bug, la première recommandation de bonne pratique, est de simplifier le problème au maximum.
Or, le "contournement dd" n'est pas indispensable, je l'ai juste mis là pour faire un test de performance sur le dernier morceau, mais stadros83 ne l'a jamais testé, et donc ni confirmé qu'il améliorait, ni rapporté qu'il "cassait tout".

Par "principe de précaution", et pour respecter la bonne pratique de simplification, je t'ai donc mis une version de développement où le contournement de dd a été supprimé.

Voila, si tu veux bien :

Peux-tu donc reprendre le script spécial sur le truc de développement : celui-là spécial pour Busybox (mode développement).

Et refaire le test.
Lors du test, peux-tu observer les diodes des disques de ton NAS (si elles sont facilement visible). En principe, la diode d'activité doit être allumée presque autant que lorsque tu fais une copie d'un gros fichier sur ton NAS.

Merci d'avance.

Dernière modification par Zakhar (Le 02/06/2011, à 07:37)


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

Hors ligne

#159 Le 02/06/2011, à 14:37

zootroopa

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

Hello Zakhar,

J'ai donc repris le test avec cette dernière version de busyXtremMerge.
Mais je ne constate pas vraiment de changement (augmentation lente de la taille du fichier .part)
La diode d'activité "clignote" assez mollement, ceci dit.
J'ai tout de même regardé l'utilisation du processeur par les process tee et md5sum.
En voici la copie d'écran. A première vue, rien d'anormale (?) :
proces10.png

J'ai aussi désactivé un "download manager" qui aurait pu peut-être expliquer cette faible vitesse d'écriture.

Pour finir, voici les logs (cela n'a pas bougé lors du passage supposé au deuxième fichier)

DiskStation> bash -x ./busyXtremMerge Dante.mkv.001.xtm -vttf
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
++ 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.6.1'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.6.1'
++ 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=
++ declare -i CHUNKS_AVAIL=0
++ set -o pipefail
++ scan_parameters Dante.mkv.001.xtm -vttf
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=Dante.mkv.001.xtm
++ for param in '"$@"'
++ case "$param" in
++ '[' -vttf == - ']'
++ i=1
++ '[' 1 -lt 5 ']'
++ case ${param:$i:1} in
++ OPTION_v=1
++ i=2
++ '[' 2 -lt 5 ']'
++ case ${param:$i:1} in
++ '[' tt = tt ']'
++ OPTION_t=2
++ i=3
++ i=4
++ '[' 4 -lt 5 ']'
++ case ${param:$i:1} in
++ OPTION_f=1
++ i=5
++ '[' 5 -lt 5 ']'
++ '[' -z Dante.mkv.001.xtm ']'
+++ readlink -f Dante.mkv.001.xtm
+++ '[' -h Dante.mkv.001.xtm ']'
+++ target=Dante.mkv.001.xtm
+++++ dirname Dante.mkv.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/VIDEO/BRRIP/xtm
+++ '[' /volume1/VIDEO/BRRIP/xtm '!=' / ']'
+++ temp=/volume1/VIDEO/BRRIP/xtm/
+++ echo -n /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ timing 1
++ '[' 2 -ge 1 ']'
++ date +%T.%N
14:48:06.%N
++ '[' '!' 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/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.
+++ echo Dante.mkv.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=Dante.mkv.
++ FIRST_SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ '[' '!' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm ']'
++ '[' '!' -s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : Dante.mkv.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : Dante.mkv.001.xtm'
*** Premier fichier source trouvé : Dante.mkv.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu1 = -vtu8 ']'
+++ command od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ tr -s '[:blank:]'
+++ cut '-d ' -f 5
++ CHUNK_SIZE=1043333120
+++ od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu4 = -vtu8 ']'
+++ command od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu4 -j92 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ SOURCE_FILE_NB='          5'
+++ od -An -vtu8 -j96 -N8 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu8 = -vtu8 ']'
++++ command od -An -vtu4 -j96 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++++ od -An -vtu4 -j96 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ low='  108621594'
++++ command od -An -vtu4 -j100 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++++ od -An -vtu4 -j100 -N4 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ high='          1'
+++ echo 4403588890
++ DEST_FILE_SIZE=4403588890
++ 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/VIDEO/BRRIP/xtm/Dante.mkv.%3.3u.xtm 5
++ LAST_SOURCE_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
++ '[' '!' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm ']'
++ '[' '!' -s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' Dante.mkv. 5
++ v_echo 'Dernier fichier source trouvé: Dante.mkv.005.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: Dante.mkv.005.xtm'
*** Dernier fichier source trouvé: Dante.mkv.005.xtm
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm
+++ cut '-d ' -f 5
+++ tr -s '[:blank:]'
++ LAST_SOURCE_FILE_SIZE=230256410
++ '[' 4403588890 -eq 4403588890 ']'
++ v_echo 'Tailles premier et dernier fichier cohérentes.'
++ '[' 1 ']'
++ echo -e '*** Tailles premier et dernier fichier cohérentes.'
*** Tailles premier et dernier fichier cohérentes.
++ '[' ']'
++ v_echo 'Détermination de l'\''emplacement du résultat...'
++ '[' 1 ']'
++ echo -e '*** Détermination de l'\''emplacement du résultat...'
*** Détermination de l'emplacement du résultat...
++ '[' -z '' ']'
+++ od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ '[' -vtu1 = -vtu8 ']'
+++ command od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
+++ od -An -vtu1 -j40 -N1 /volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm
++ DEST_FILE_NAME_LENGTH='   9'
+++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=1 skip=41 count=9
++ DEFAULT_DEST_FILE_NAME=Dante.mkv
++ '[' -z '' ']'
++ this_file_radix=
++ DISPLAY_DEST_FILE_NAME=Dante.mkv
++ v_echo 'Emplacement du résultat : Dante.mkv'
++ '[' 1 ']'
++ echo -e '*** Emplacement du résultat : Dante.mkv'
*** Emplacement du résultat : Dante.mkv
+++ readlink -fn Dante.mkv
+++ '[' -h Dante.mkv ']'
+++ target=Dante.mkv
+++++ dirname Dante.mkv
++++ cd .
++++ pwd
+++ temp=/volume1/VIDEO/BRRIP/xtm
+++ '[' /volume1/VIDEO/BRRIP/xtm '!=' / ']'
+++ temp=/volume1/VIDEO/BRRIP/xtm/
+++ echo -n /volume1/VIDEO/BRRIP/xtm/Dante.mkv
++ DEST_FILE_NAME=/volume1/VIDEO/BRRIP/xtm/Dante.mkv
++ DEST_FILE_NAME_PART=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ v_echo 'Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
++ '[' 1 ']'
++ echo -e '*** Vérification de la possibilité d'\''écrire le résultat : existence, autorisation d'\''écriture, espace disponible, etc...'
*** Vérification de la possibilité d'écrire le résultat : existence, autorisation d'écriture, espace disponible, etc...
++ '[' -f /volume1/VIDEO/BRRIP/xtm/Dante.mkv ']'
++ touch /volume1/VIDEO/BRRIP/xtm/Dante.mkv /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
++ '[' 0 -ne 0 ']'
+++ df /volume1/VIDEO/BRRIP/xtm/Dante.mkv
+++ sed -n 2p
++ TMP='/dev/vg1000/lv       2879606320 374004708 2505499212  13% /volume1'
+++ echo /dev/vg1000/lv 2879606320 374004708 2505499212 13% /volume1
+++ cut '-d ' -f 4
++ SPACE_AVAIL=2565631192064
+++ stat -c%s /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
+++ ls -l /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
+++ cut '-d ' -f 5
+++ tr -s '[:blank:]'
++ size=0
++ DISK_SPACE_NEEDED=4403588890
++ '[' 4403588890 == 0 ']'
++ '[' 2565631192064 -lt 4403588890 ']'
++ CHUNKS_AVAIL=0
++ '[' 0 -eq 0 ']'
++ v_echo '0 fichiers déjà traités.'
++ '[' 1 ']'
++ echo -e '*** 0 fichiers déjà traités.'
*** 0 fichiers déjà traités.
++ v_echo 'Vérifications pour le fichier résultat terminées.'
++ '[' 1 ']'
++ echo -e '*** Vérifications pour le fichier résultat terminées.'
*** Vérifications pour le fichier résultat terminées.
++ '[' ']'
++ '[' 1 -eq 0 ']'
++ '[' ']'
++ MD5_PROG=md5sum
++ '[' '!' 1 ']'
++ timing 1
++ '[' 2 -ge 1 ']'
++ date +%T.%N
14:48:06.%N
++ '[' 0 -eq 0 ']'
++ printf '\E[1mTraitement optimisé des %u fichiers\E[0m\n' 5
Traitement optimisé des 5 fichiers
++ echo ==================================
==================================
++ i=0
++ ((  0 < 5  ))
++ '[' 1 -eq 1 ']'
+++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.005.xtm bs=1 skip=230256410 count=32
++ this_file_MD5=66374F5F2D5E2F416449DADD7B5CC0F6
++ i=1
+++ printf %s%3.3u /volume1/VIDEO/BRRIP/xtm/Dante.mkv. 1
++ this_file_radix=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001
++ printf 'Traitement de %s%3.3u.xtm ...  ' Dante.mkv. 1
Traitement de Dante.mkv.001.xtm ...  ++ case $i in
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=104 count=1
++ md5sum --status -c /dev/fd/63
+++ echo '66374F5F2D5E2F416449DADD7B5CC0F6 *-'
++ command md5sum
++ md5sum
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=8 skip=13 count=499
++ tee /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part
+++ echo 66374F5F2D5E2F416449DADD7B5CC0F6
++ grep -iq 66374F5F2D5E2F416449DADD7B5CC0F6
++ dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=4096 skip=1

Dois-je enfourcher mon cyber-chameau pour une petite traversée du désert?  big_smile

Hors ligne

#160 Le 02/06/2011, à 22:24

Zakhar

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

De plus en plus bizarre !
Et merci pour l'occupation CPU, on voit que tee (qui fait quasi rien) prend presque tout... pas très optimisé dis-donc. D'ici que ce soit lui bug...
Et le dd on le voit même pas sur le graphique.

Alors il va falloir que tu fasses les commande "à la main", en rajoutant progressivement les "pipes" pour qu'on comprenne lequel bloque.

dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm of=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.part bs=4096 skip=1
dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=4096 skip=1 2>/dev/null | tee /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part >/dev/null
dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=4096 skip=1 2>/dev/null | tee /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part | md5sum

Et tu observes à partir de quand ça "bloque".

Je soupçonne fortement tee, et ça devrait donc bloquer dès la deuxième. La première devrait passer sans problème et te donner l'indication du temps que c'est sensé mettre lorsque tout va bien !

Dernière modification par Zakhar (Le 02/06/2011, à 22:24)


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

Hors ligne

#161 Le 03/06/2011, à 16:00

zootroopa

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

Hello!

Cela "bloque" a priori sur la deuxième ligne de commande, rien ne s'étant passé lors du passage au deuxième fichier

DiskStation> dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm of=/volume1/VIDEO/
BRRIP/xtm/Dante.mkv.part bs=4096 skip=1
254719+1 records in
254719+1 records out
DiskStation> dd if=/volume1/VIDEO/BRRIP/xtm/Dante.mkv.001.xtm bs=4096 skip=1 2>/
dev/null | tee /volume1/VIDEO/BRRIP/xtm/Dante.mkv.part >/dev/null
^C  

Qu'est ce qu'on fait, docteur? smile

Hors ligne

#162 Le 03/06/2011, à 17:49

Zakhar

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

J'imagine que la première commande (le dd tout seul) a duré autour de 30 sec avec un "bon clignotement" des disques, tandis que la seconde tu l'as coupée au bout d'un temps raisonnable et le disque clignotait "mollement".

Si c'est bien le cas, hélas ça veut dire que le tee est buggé.

La seule solution sympa serait de regarder si tu peux trouver une version non buggée... mais fais gaffe avec ipkg de ne pas récupérer une version encore plus ancienne... mad

Et l'autre solution, mais c'est moche... je te fais une version spéciale sans tee. C'est moche parce que précisément, tee est LA plus-value de ce script, car ça permet, en ne lisant qu'une seule fois le fichier en entrée, de faire en parallèle l'écriture sur le résultat et le md5sum. Et donc si tee ne fonctionne pas, on est obligé de sérialiser en perdant du temps, c'est moche donc.

Je te laisse regarder les forums Synology, si tu trouves traces de ce bug de tee, et en attendant je réfléchis comment faire "au moins moche" !


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

Hors ligne

#163 Le 04/06/2011, à 10:55

zootroopa

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

Hello,

Je n'ai hélas rien trouvé au sujet d'un éventuel bug de tee (à propos, il fait quoi exactement ce tee?).
Est-ce que tu peux me dire comment savoir de quelle version je dispose?
Après j'irai voir si je peux en trouver éventuellement une plus récente
Sinon... ben je veux bien essayer la solution moche smile

Encore merci pour ta pugnacité.

Hors ligne

#164 Le 04/06/2011, à 17:20

Zakhar

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

tee ça fait exactement comme un T en plomberie (ce qui se dit d'ailleurs tee en anglais).
Donc lorsque tu mets un T sur un tuyau, et que l'eau arrive pas le T, elle part ensuite des deux côtés.
Eh bien là c'est pareil.
Les octets sont lus, on les met dans le T, et ils sont dupliqués de chaque côté. D'un côté les octets sont posés sur le fichier de destination, et de l'autre on les met dans md5sum pour calculer la somme de contrôle.
Cela permet de faire ça d'un seul coup, sans avoir à lire deux fois le fichier.

Quant à tee, il n'y a pas de version en soi normalement car il fait partie de coreutils et prend donc la version des coreutils, c'est à dire les utilitaires de base qu'on a toujours dans GNU.

$ tee --version
tee (GNU coreutils) 7.4
Copyright © 2009 Free Software Foundation, Inc.
License GPLv3+ : GNU GPL version 3 ou ultérieure
<http://gnu.org/licenses/gpl.html>
Ceci est logiciel libre, vous êtes libre de le modifier et de le redistribuer.
Ce logiciel n'est accompagné d'ABSOLUMENT AUCUNE GARANTIE, dans les limites
autorisees par la loi applicable.

Écrit par Mike Parker, Richard M. Stallman et David MacKenzie.

Tu peux cependant regarder s'il y a une version de coreutils pas trop ancienne à charger.
Fais avant un tee --version, et regarde ce qu'il y a comme package, la commande étant probablement

ipkg install coreutils

(au pif !.. mais attention, si ça se trouve c'est une version plus ancienne et ça risque d'installer sans autre confirmation)

OK pour la version "moche"... faut juste que je la développe !..

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


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

Hors ligne

#165 Le 04/06/2011, à 21:38

Zakhar

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

Bon, eh bien je viens de regarder.

Ton Synology DS411+ possède une processeur Intel Atom. Le ipkg prend donc sa source là http://ipkg.nslu2-linux.org/feeds/optwa … /unstable/ pour ce type de processeur.

A priori, dans la liste on voit : coreutils_8.4-1_i686.ipk

C'est une version de coreutils qui a tout juste plus d'un an, et elle est même plus récente que celle qu'on a sur Lucid Lynx (normal, il est sorti il y a plus d'un an, plus le freeze... ça fait un coreutils 7.4)

Donc tu peux faire :

tee --version

Tu vas certainement obtenir un truc plus ancien que 8.4-1
Poste moi ce que ça affiche (si l'option --version est reconnue !) pour que je puisse le mettre dans le rapport de bug.

Et dans ce cas tu peux faire

ipkg install coreutils

Une fois ceci réalisé, tu peux retester le script, avec l'affichage des processus c'est parfait, ainsi que l'observation du clignotement du disque.
Sur ma Lucid Lynx, c'est md5sum qui arrive en tête du CPU, ce qui est beaucoup plus normal... et tee est derrière, mais toujours à 10 à 20% de moins que md5sum.

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


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

Hors ligne

#166 Le 06/06/2011, à 19:08

zootroopa

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

Hello,
La commande

tee --version

n'est apparemment pas reconnue sur le synology (sur Ubuntu, très bien)
cela donne :DiskStation> tee --version

tee: unrecognized option `--version'
BusyBox v1.16.1 (2011-04-08 10:13:58 CST) multi-call binary.

Usage: tee [OPTIONS] [FILE]...

Copy stdin to each FILE, and also to stdout

Options:
    -a    Append to the given FILEs, don't overwrite
    -i    Ignore interrupt signals (SIGINT)

Quant à la commande 

ipkg install coreutils

elle me donne ceci :

DiskStation> ipkg install coreutils
Installing coreutils (8.4-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/coreutils_8.4-1_i686.ipk
An error ocurred, return value: 27.
Collected errors:
Package coreutils wants to install file /opt/man/man1/cat.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/cksum.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/comm.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/csplit.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/cut.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/expand.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/fmt.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/fold.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/head.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/join.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/md5sum.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/nl.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/od.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/paste.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/pr.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/ptx.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/sha1sum.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/sort.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/split.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/sum.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/tac.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/tail.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/tr.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/tsort.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/unexpand.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/uniq.1
    But that file is already provided by package textutils
Package coreutils wants to install file /opt/man/man1/wc.1
    But that file is already provided by package textutils

Bref, c'est lundi smile

Hors ligne

#167 Le 06/06/2011, à 21:15

Zakhar

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

Bah, c'est comme te dit le monsieur tongue

Le package coreutils contient des utilitaires "core" (le "coeur" en Français), c'est à dire les plus utilisés de GNU.
Il existait auparavant un package textutils, qui contenait des utilitaires "texte" (comme od), mais désormais, dans toutes les distributions "modernes"... et visiblement aussi dans busybox, le package coreutils contient aussi textutils (plus d'autres, comme tee).

Sur Ubuntu c'est aussi le cas. Textutils existe, mais c'est un paquet "virtuel" qui est "fourni" par coreutils.

Les messages que tu as sont donc tout à fait normaux !

Tu peux donc "forcer" l'installation malgré les messages.

Regarde comment marche ipkg (avec ipkg --help par exemple) il y a certainement une option pour forcer dans ce cas là.

... du genre

ipkg install -f coreutils

(j'invente !)

Sinon l'autre solution
-1) désinstaller les textutils (puisqu'ils sont "fournis" aussi par coreutils... et probablement plus à jour) -tu trouveras bien la commande sur les forums syno, ou dans l'aide de ipkg-
au pif je ferais

ipkg remove textutils

-2) une fois les textutils retirés, tu devrais pouvoir installer les coreutils tous récents sans problème.
... et si ça se touve, là tu n'auras même plus besoin des "contournements", car le premier gars qui avait essayé sur Syno, ça avait marché direct sans contournements... mais si ça se trouve il avait justement installé ces coreutils tous récents puisqu'ils sont encore plus neuf que sur Ubuntu Lucid.


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

Hors ligne

#168 Le 06/06/2011, à 21:27

zootroopa

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

Bon ben voilà... va falloir que je te fasses la bise maintenant... lol

DiskStation> ipkg remove textutils
Removing package textutils from root...
Successfully terminated.
DiskStation> ipkg install coreutils
Installing coreutils (8.4-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/coreutils_8.4-1_i686.ipk
Configuring coreutils
update-alternatives: Linking //opt/bin/[ to coreutils-lbracket
update-alternatives: Linking //opt/bin/base64 to coreutils-base64
update-alternatives: Linking //opt/bin/basename to coreutils-basename
update-alternatives: Linking //opt/bin/cat to coreutils-cat
update-alternatives: Linking //opt/bin/chcon to coreutils-chcon
update-alternatives: Linking //opt/bin/chgrp to coreutils-chgrp
update-alternatives: Linking //opt/bin/chmod to coreutils-chmod
update-alternatives: Linking //opt/bin/chown to coreutils-chown
update-alternatives: Linking //opt/bin/chroot to coreutils-chroot
update-alternatives: Linking //opt/bin/cksum to coreutils-cksum
update-alternatives: Linking //opt/bin/comm to coreutils-comm
update-alternatives: Linking //opt/bin/cp to coreutils-cp
update-alternatives: Linking //opt/bin/csplit to coreutils-csplit
update-alternatives: Linking //opt/bin/cut to coreutils-cut
update-alternatives: Linking //opt/bin/date to coreutils-date
update-alternatives: Linking //opt/bin/dd to coreutils-dd
update-alternatives: Linking //opt/bin/df to coreutils-df
update-alternatives: Linking //opt/bin/dir to coreutils-dir
update-alternatives: Linking //opt/bin/dircolors to coreutils-dircolors
update-alternatives: Linking //opt/bin/dirname to coreutils-dirname
update-alternatives: Linking //opt/bin/du to coreutils-du
update-alternatives: Linking //opt/bin/echo to coreutils-echo
update-alternatives: Linking //opt/bin/env to coreutils-env
update-alternatives: Linking //opt/bin/expand to coreutils-expand
update-alternatives: Linking //opt/bin/expr to coreutils-expr
update-alternatives: Linking //opt/bin/factor to coreutils-factor
update-alternatives: Linking //opt/bin/false to coreutils-false
update-alternatives: Linking //opt/bin/fmt to coreutils-fmt
update-alternatives: Linking //opt/bin/fold to coreutils-fold
update-alternatives: Linking //opt/bin/groups to coreutils-groups
update-alternatives: Linking //opt/bin/head to coreutils-head
update-alternatives: Linking //opt/bin/hostid to coreutils-hostid
update-alternatives: Linking //opt/bin/id to coreutils-id
update-alternatives: Linking //opt/bin/install to coreutils-install
update-alternatives: Linking //opt/bin/join to coreutils-join
update-alternatives: Linking //opt/bin/kill to coreutils-kill
update-alternatives: Linking //opt/bin/link to coreutils-link
update-alternatives: Linking //opt/bin/ln to coreutils-ln
update-alternatives: Linking //opt/bin/logname to coreutils-logname
update-alternatives: Linking //opt/bin/ls to coreutils-ls
update-alternatives: Linking //opt/bin/md5sum to coreutils-md5sum
update-alternatives: Linking //opt/bin/mkdir to coreutils-mkdir
update-alternatives: Linking //opt/bin/mkfifo to coreutils-mkfifo
update-alternatives: Linking //opt/bin/mknod to coreutils-mknod
update-alternatives: Linking //opt/bin/mktemp to coreutils-mktemp
update-alternatives: Linking //opt/bin/mv to coreutils-mv
update-alternatives: Linking //opt/bin/nice to coreutils-nice
update-alternatives: Linking //opt/bin/nl to coreutils-nl
update-alternatives: Linking //opt/bin/nohup to coreutils-nohup
update-alternatives: Linking //opt/bin/nproc to coreutils-nproc
update-alternatives: Linking //opt/bin/od to coreutils-od
update-alternatives: Linking //opt/bin/paste to coreutils-paste
update-alternatives: Linking //opt/bin/pathchk to coreutils-pathchk
update-alternatives: Linking //opt/bin/pinky to coreutils-pinky
update-alternatives: Linking //opt/bin/pr to coreutils-pr
update-alternatives: Linking //opt/bin/printenv to coreutils-printenv
update-alternatives: Linking //opt/bin/printf to coreutils-printf
update-alternatives: Linking //opt/bin/ptx to coreutils-ptx
update-alternatives: Linking //opt/bin/pwd to coreutils-pwd
update-alternatives: Linking //opt/bin/readlink to coreutils-readlink
update-alternatives: Linking //opt/bin/rm to coreutils-rm
update-alternatives: Linking //opt/bin/rmdir to coreutils-rmdir
update-alternatives: Linking //opt/bin/runcon to coreutils-runcon
update-alternatives: Linking //opt/bin/seq to coreutils-seq
update-alternatives: Linking //opt/bin/sha1sum to coreutils-sha1sum
update-alternatives: Linking //opt/bin/sha224sum to coreutils-sha224sum
update-alternatives: Linking //opt/bin/sha256sum to coreutils-sha256sum
update-alternatives: Linking //opt/bin/sha384sum to coreutils-sha384sum
update-alternatives: Linking //opt/bin/sha512sum to coreutils-sha512sum
update-alternatives: Linking //opt/bin/shred to coreutils-shred
update-alternatives: Linking //opt/bin/shuf to coreutils-shuf
update-alternatives: Linking //opt/bin/sleep to coreutils-sleep
update-alternatives: Linking //opt/bin/sort to coreutils-sort
update-alternatives: Linking //opt/bin/split to coreutils-split
update-alternatives: Linking //opt/bin/stat to coreutils-stat
update-alternatives: Linking //opt/bin/stdbuf to coreutils-stdbuf
update-alternatives: Linking //opt/bin/stty to coreutils-stty
update-alternatives: Linking //opt/bin/su to coreutils-su
update-alternatives: Linking //opt/bin/sum to coreutils-sum
update-alternatives: Linking //opt/bin/sync to coreutils-sync
update-alternatives: Linking //opt/bin/tac to coreutils-tac
update-alternatives: Linking //opt/bin/tail to coreutils-tail
update-alternatives: Linking //opt/bin/tee to coreutils-tee
update-alternatives: Linking //opt/bin/test to coreutils-test
update-alternatives: Linking //opt/bin/timeout to coreutils-timeout
update-alternatives: Linking //opt/bin/touch to coreutils-touch
update-alternatives: Linking //opt/bin/tr to coreutils-tr
update-alternatives: Linking //opt/bin/true to coreutils-true
update-alternatives: Linking //opt/bin/truncate to coreutils-truncate
update-alternatives: Linking //opt/bin/tsort to coreutils-tsort
update-alternatives: Linking //opt/bin/tty to coreutils-tty
update-alternatives: Linking //opt/bin/uname to coreutils-uname
update-alternatives: Linking //opt/bin/unexpand to coreutils-unexpand
update-alternatives: Linking //opt/bin/uniq to coreutils-uniq
update-alternatives: Linking //opt/bin/unlink to coreutils-unlink
update-alternatives: Linking //opt/bin/uptime to coreutils-uptime
update-alternatives: Linking //opt/bin/users to coreutils-users
update-alternatives: Linking //opt/bin/vdir to coreutils-vdir
update-alternatives: Linking //opt/bin/wc to coreutils-wc
update-alternatives: Linking //opt/bin/who to coreutils-who
update-alternatives: Linking //opt/bin/whoami to coreutils-whoami
update-alternatives: Linking //opt/bin/yes to coreutils-yes
Successfully terminated.
DiskStation> bash ./busyXtremMerge Dante.mkv.001.xtm
Vérifications ...  OK
Traitement optimisé des 5 fichiers
==================================
Traitement de Dante.mkv.001.xtm ...  OK
Traitement de Dante.mkv.002.xtm ...  OK
Traitement de Dante.mkv.003.xtm ...  OK
Traitement de Dante.mkv.004.xtm ...  OK
Traitement de Dante.mkv.005.xtm ...  OK
==================================================
Toutes les opérations sont terminées avec succès !

L'extraction n'a pas pris deux minutes !!
T'es mon dieu. big_smile

Hors ligne

#169 Le 06/06/2011, à 21:30

Zakhar

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

Mais non, mais non, c'est aussi que tu as des disques de bonne qualité (chez moi c'est environ ce temps là aussi pour 4,5G) !

Tu vois, il y avait bien un bug dans tee, vu qu'avec le nouveau tout va bien.  big_smile

Et tu peux essayer la même avec les temps que je vois si tu as l'anomalie de stadros83 sur le dernier morceau.

bash ./busyXtremMerge Dante.mkv.001.xtm -fvtt

Et tant qu'on y est... sans les contournements pour voir si coreutils 8.4 ne répare pas tout miraculeusement :

bash ./tuXtremMerge Dante.mkv.001.xtm -fvtt

Dernière modification par Zakhar (Le 06/06/2011, à 21:33)


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

Hors ligne

#170 Le 06/06/2011, à 21:45

zootroopa

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

Dans ma joie, j'ai flingué les fichers xtm "Dante". Mais en compensation je t'ai fait le test avec un autre "pool" xtm encore plus volumineux (7x1GB + 826.19MB)

Cela donne pour busyXtremMerge :

DiskStation> bash ./busyXtremMerge RRH.mkv.001.xtm -fvtt  
22:34:51.971276000
*** Vérification d'existence du premier fichier source...
*** Premier fichier source trouvé : RRH.mkv.001.xtm
*** Vérification d'existence du dernier fichier source...
*** Dernier fichier source trouvé: RRH.mkv.008.xtm
*** Tailles premier et dernier fichier cohérentes.
*** Détermination de l'emplacement du résultat...
*** Emplacement du résultat : RRH.mkv
*** Vérification de la possibilité d'écrire le résultat : existence, autorisation d'écriture, espace disponible, etc...
*** 0 fichiers déjà traités.
*** Vérifications pour le fichier résultat terminées.
22:34:52.078609000
Traitement optimisé des 8 fichiers
==================================
Traitement de RRH.mkv.001.xtm ...  OK
22:35:25.746531000
Traitement de RRH.mkv.002.xtm ...  OK
22:35:58.150130000
Traitement de RRH.mkv.003.xtm ...  OK
22:36:29.213839000
Traitement de RRH.mkv.004.xtm ...  OK
22:36:59.854245000
Traitement de RRH.mkv.005.xtm ...  OK
22:37:32.075820000
Traitement de RRH.mkv.006.xtm ...  OK
22:38:04.057078000
Traitement de RRH.mkv.007.xtm ...  OK
22:38:36.229923000
Traitement de RRH.mkv.008.xtm ...  OK
22:39:21.747134000
==================================================
Toutes les opérations sont terminées avec succès !
22:39:21.840196000

Un temps peut être un peu plus/trop long pour le dernier fichier? (personnellement, ce n'est pas ça qui va me faire reboucher le champagne big_smile)

pour tuXtremMerge, en revanche, cela ne passe toujours pas ( là aussi, je dois admettre que je suis plus désolé pour toi que pour moi wink)

DiskStation> bash ./tuXtremMerge RRH.mkv.001.xtm -fvtt  
22:46:29.815133000
*** Vérification d'existence du premier fichier source...
*** Premier fichier source trouvé : RRH.mkv.001.xtm
*** Vérification d'existence du dernier fichier source...
*** Dernier fichier source trouvé: RRH.mkv.008.xtm
*** Tailles premier et dernier fichier cohérentes.
*** Détermination de l'emplacement du résultat...
*** Emplacement du résultat : RRH.mkv
*** Vérification de la possibilité d'écrire le résultat : existence, autorisation d'écriture, espace disponible, etc...
*** 0 fichiers déjà traités.
*** Vérifications pour le fichier résultat terminées.
22:46:29.975676000
Traitement optimisé des 8 fichiers
==================================
Traitement de RRH.mkv.001.xtm ...  md5sum: /dev/fd/63: No such file or directory
Erreur

Néanmoins, si tu as besoin de poursuivre tes investigations, c'est bien volontiers que je continuerais à faire le cobaye.

Dernière modification par zootroopa (Le 06/06/2011, à 21:47)

Hors ligne

#171 Le 06/06/2011, à 22:13

Zakhar

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

Merci pour ces deux nouveaux tests !..

Et oui, même syndrome sur le dernier fichier (mais effectivement, ça reste dans les limites du "raisonnable").
Quant au tuXtremMerge, c'est pas mal !..
En fait là où tu en es, tout passe... sauf le process substitution. Mais ça c'est l'O.S. et pas les coreutils, donc on n'y peut rien.
Par contre s'il n'y a que ça qui merde, je vais voir si je ne peux pas utiliser la même technique que j'ai prise pour le synology et enlever ce process substitution dans le programme commun.

De toute façon, cette fonctionnalité est spécifique à bash, et ça çaylemal !..
En réalité, Debian, et donc Ubuntu aussi, essaye de tout faire pour que les scripts tournent avec dash qui est conforme posix. Et ça tombe bien, Ash qui est le shell par défaut des Busybox est l'ancêtre de Dash, donc ils ont pas mal de trucs en communs.

Bref je vais voir ce que je peux faire pour :
- retirer ce "process substitution" => amélioration : tu pourras utiliser le script commun de tout le monde !
- si je peux faire un truc pour ce dernier fichier (l'écart ne se produit pas sur Ubuntu)... mais après tout c'est peut-être lié à une extrêmement bonne bufferisation de ton NAS (il doit utiliser un max de mémoire pour bufferiser) et c'est donc peut être tout à fait normal, vu qu'un NAS est fait pour accélérer le plus possible les opérations fichiers.


... mais pas tout de suite. Là je profite de la Feebox V6 de ma mère pour faire des scripts pour freebox big_smile

Et effectivement, en attendant tu peux laisser la bouteille de champ' ouverte !..

Si tu gardes le "Suivi de discussion", tu verras quand je fais les "améliorations" vu que tu recevras un nouveau mail.

Dernière modification par Zakhar (Le 06/06/2011, à 23:58)


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

Hors ligne

#172 Le 16/06/2011, à 18:17

stadros83

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

Salut c'est moi que re'vla big_smile !

J'ai essayé de recollé un gros XTM ! (131 fichiers) et erreur :

NAS> bash busyXtremMerge -v Vendetta.001.xtm
*** Vérification d'existence du premier fichier source...
*** Premier fichier source trouvé : Vendetta.001.xtm
*** Vérification d'existence du dernier fichier source...
*** Dernier fichier source trouvé: Vendetta.131.xtm
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é.

Pour info le code fonctionne toujours avec mon PDF de test (15 fichiers).

Je pense donc que le soucis vient du nombre de fichiers trop grands ?

NAS> bash -x busyXtremMerge Vendetta.001.xtm -v
+ readonly 'MSG_BUSY_VERSION=busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
+ MSG_BUSY_VERSION='busyXtremMerge (turbo XTM), contournements pour Busybox, version 1.0.1'
++ 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.6.1'
++ MSG_VERSION='tuXtremMerge (turbo XTM), version 1.6.1'
++ 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=
++ declare -i CHUNKS_AVAIL=0
++ set -o pipefail
++ scan_parameters Vendetta.001.xtm -v
++ for param in '"$@"'
++ case "$param" in
++ '[' -z '' ']'
++ DISPLAY_SOURCE_FILE_NAME=Vendetta.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 Vendetta.001.xtm ']'
+++ readlink -f Vendetta.001.xtm
+++ '[' -h Vendetta.001.xtm ']'
+++ target=Vendetta.001.xtm
+++++ dirname Vendetta.001.xtm
++++ cd .
++++ pwd
+++ temp=/volume1/DATA/Incoming/Torrent/XTM
+++ '[' /volume1/DATA/Incoming/Torrent/XTM '!=' / ']'
+++ temp=/volume1/DATA/Incoming/Torrent/XTM/
+++ echo -n /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
++ SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/XTM/Vendetta.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/XTM/Vendetta.001.xtm
+++ sed 's/...\.xtm$//'
++ RADIX=/volume1/DATA/Incoming/Torrent/XTM/Vendetta.
+++ echo Vendetta.001.xtm
+++ sed 's/...\.xtm$//'
++ DISPLAY_RADIX=Vendetta.
++ FIRST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm ']'
++ v_echo 'Premier fichier source trouvé : Vendetta.001.xtm'
++ '[' 1 ']'
++ echo -e '*** Premier fichier source trouvé : Vendetta.001.xtm'
*** Premier fichier source trouvé : Vendetta.001.xtm
+++ od -An -vtu1 -j91 -N1 /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
++ fMD5='   1'
++ '[' 1 -eq 0 ']'
+++ stat -c%s /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
+++ cut '-d ' -f 5
+++ tr -s '[:blank:]'
++ CHUNK_SIZE=103809024
+++ od -An -vtu4 -j92 -N4 /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
++ SOURCE_FILE_NB='        131'
+++ od -An -vtu8 -j96 -N8 /volume1/DATA/Incoming/Torrent/XTM/Vendetta.001.xtm
++ DEST_FILE_SIZE='            616778860'
++ 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/XTM/Vendetta.%3.3u.xtm 131
++ LAST_SOURCE_FILE_NAME=/volume1/DATA/Incoming/Torrent/XTM/Vendetta.131.xtm
++ '[' '!' -f /volume1/DATA/Incoming/Torrent/XTM/Vendetta.131.xtm ']'
++ '[' '!' -s /volume1/DATA/Incoming/Torrent/XTM/Vendetta.131.xtm ']'
+++ printf 'Dernier fichier source trouvé: %s%3.3u.xtm\n' Vendetta. 131
++ v_echo 'Dernier fichier source trouvé: Vendetta.131.xtm'
++ '[' 1 ']'
++ echo -e '*** Dernier fichier source trouvé: Vendetta.131.xtm'
*** Dernier fichier source trouvé: Vendetta.131.xtm
+++ stat -c%s /volume1/DATA/Incoming/Torrent/XTM/Vendetta.131.xtm
+++ ls -l /volume1/DATA/Incoming/Torrent/XTM/Vendetta.131.xtm
+++ cut '-d ' -f 5
+++ tr -s '[:blank:]'
++ LAST_SOURCE_FILE_SIZE=6507628
++ '[' 13501680748 -eq 616778860 ']'
++ 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

#173 Le 16/06/2011, à 18:35

Zakhar

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

Non ce n'est pas le nombre de fichiers (on aurait un problème potentiel au delà de 1000 fichiers... mais pas sûr que l'original s'en sorte mieux dans ce cas !), tu es tombé sur le problème soulevé par Zootroopa au post 136. Tu as de la chance quelqu'un a fait le debug pour toi et c'est déjà corrigé !

En fait le od sur busybox est buggé, il ne supporte pas les calculs du 64 bits.
Et donc, dès que le fichier à recoller fait plus de 4GB... ça merdait !.. C'est le cas ici puisque ton fichier est autour de 13GB.

J'ai donc fait un contournement qui se trouve au post #140.

Mais en gros si tu reprends le dernier busybox de "développement" et le dernier tuXtremMerge commun ça doit marcher sans problème.

-1) Reprendre le script spécial sur le truc de développement : celui-là spécial pour Busybox.

-2) Reprendre  le script commun ici.

-3) Réessayer !

(Optionnel, tu peux aussi lire nos échanges avec Zootroopa, ça donne des idées, notamment l'installation des coreutils à la place des textutils qui semblent bien obsolètes... mais en l'occurrence lui il a un NAS avec un Atom et je ne sais pas si c'est identique pour le tien, il faudrait aller voir les repositories de Syno pour ça)

Dernière modification par Zakhar (Le 16/06/2011, à 18:39)


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

Hors ligne

#174 Le 16/06/2011, à 18:49

stadros83

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

Ah exact ! J'avais récupéré les dernières versions mais pas celle de développement wink !

C'est parfait ça a fonctionné big_smile !

Un grand merci (encore une fois).

Hors ligne

#175 Le 16/06/2011, à 18:52

Zakhar

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

No problemo !

Il me reste à "faire propre", car j'ai fait les derniers trucs avec Zootroopa alors que j'étais en vacances, c'est pour ça que la page 1 n'est pas à jour des dernières "améliorations", désolé... vacances et reprise... j'ai pas eu le temps !


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

Hors ligne