Kazaam Posté(e) le 13 décembre 2016 Partager Posté(e) le 13 décembre 2016 (modifié) Hello J'ai remarqué (comme d'autres) que Download Station gardait tout ce qui est en partage (seed) dans un folder caché au lieu d'utiliser ce que l'on a dans le dossier de download. Ce qui fait que l'on se retrouve avec le double des données utilisées sur le disque.... Seul avantage on peut faire ce que l'on veut de ce qu'il y a dans le dossier de download vu qu'il ne sert pas Download station, mais est ce que cela vaut la place utilisée? Pour moi non, donc j'ai entrepris de faire quelques tests pour comprendre le fonctionnement de Download station Les fichiers/dossiers Tout se trouve sous le volume configuré pour les fichiers temporaires sous un dossier nommé "@download" qui n'est visible qu'en se mettant en root via un ssh. Il est configuré dans las paramètres de Download Station Sous ce dossier "@download" vous trouvez des dossiers avec un simple nombre comme nom Chaque dossier correspond à l'ID d'un téléchargement. Cet ID est lié à une base de données que je parlerais plus tard Dans chacun de ses dossiers vous trouvez un fichier .torrent qui est le torrent correspondant à ce téléchargement (tracker compris), un fichier .resume qui contient les données utilisées pour la vérification du téléchargement (état, taille... et plein de choses incompréhensibles) et un fichier .filelist qui contient les fichiers à telecharger et s'ils sont dans un dossier. Et bien sur le fichier ou dossier qui a été telechargé (elle est la la place perdue), si celui ci n'existe pas, pas de partage, le téléchargement n'est plus considéré comme complet. L'espace à gagner se trouve dans chacun de ces dossiers Il y a aussi un fichier de log (transmissiond.log, tient c'est étrange) qui contient le log des erreurs. La base de données Elle est au format PostgreSQL egt n'est pas accessible par defaut, il faut faire quelques modifs que l'on trouve sur le net pour y acceder. Elle contient les téléchargement, leur nom, statuts, taille...., dans mon cas, la seule utilité est de faire correspondre les ID et les noms de dossier, mais sinon vous trouverez l'info dans le fichier .filelist (plus long mais sans besoin de faire de modifs du systeme) Gagner de l'espace disque On arrive à notre but, après un simple test avec des symlinks, Download station n'y voit que du feu, par contre il faut le faire manuellement pour chaque dossier en le faisant pointer vers celui du repertoire download. C'est long et pas très pratique, donc voila un premier jet de script pour faire ça : Attention : Avant de lancer le script il faut être sur que tous les téléchargements sont terminés ou ils seront perdus. Il faut aussi mettre en pause tout le contenu de download station afin qu'il relance ses vérifications de fichier a sa remise en marche, sinon tout passera en erreur ou il n'y aura plus aucun upload #!/bin/bash function checklink { #look download folder to find destination mdest=$(find /volume1/Download/ -name "$1") echo $mdest if [ -z "$mdest" ]; then echo "$1"; echo "$2"; read -n1 -r -p "Press any key to continue..." key else echo "traitement" rm -R "$2/$mdown" rm -R $2/*.resume ln -s "$mdest" "$2/$1" fi } cd /volume1/\@download #get list of listfile in download station liste=$(find ./ -name "*.filelist") #cut result to get first occurency mfile=$(echo $liste | cut -d " " -f1) i=1 #loop until end of list until [ -z $mfile ]; do #get downloaded file name or folder mdown=$(tail -n 3 $mfile |grep name|cut -d':' -f1- |awk -F'"' '{print $4}') mcurdir=$(dirname $mfile) #check if symlink exists mlink=$(readlink "$mcurdir/$mdown") if [ -z "$mlink" ]; then checklink "$mdown" "$mcurdir"; fi #read -n1 -r -p "Press any key to continue..." key let i=i+1 mfile=$(echo $liste | cut -d " " -f$i) done Il n'est pas parfait dans le sens ou je n'ai pas géré les caractères réservés (genre [] ) et que les fichiers avec des accents donnent des résultats étranges vu que Download station et Linux ne sont pas dans le même format (c'est hyper logique) Le script va vérifier chaque dossier du répertoire @download pour voir si le contenu téléchargé est situé ici ou ailleurs via un symlink. Dans le cas ou le contenu est local, il va lire le fichier .filelist pour extraire le nom du dossier/fichier et le rechercher dans le répertoire download. Une fois identifié, il supprime le contenu local et crée le lien. Dans le cas ou il ne trouve pas les données dans le dossier download, le script se met en pause en affichant ou il y a eu un soucis Le coté positif : on gagne pas mal d'espace on peut ranger dans des sous dossier sans soucis (genre mettre une série dans un dossier commun) Le coté négatif : Il faut faire revérifier chaque téléchargement par Download Station (c'est long la premiere fois, apres ca reste jouable) Le script ne doit pas être utilisé pendant un téléchargement ou il faudra reprendre le téléchargement à 0 Le fait de ne pas prendre les caractere spéciaux et les accents gene mais dans mon cas c'etait 3 fichiers sur 170... donc assez faible Vu que c'est deja fonctionnel pourquoi Synology ne le fait pas par défaut ? Je vais me pencher sur cette histoire de caractères non gérés, en tous cas je confirme que l'upload fonctionne toujours Bonne journée Edit1 : Correction du script pour des erreurs de gestion d'espaces dans les noms Modifié le 13 décembre 2016 par Kazaam 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
lordtaki Posté(e) le 16 décembre 2016 Partager Posté(e) le 16 décembre 2016 (modifié) J'ai du mal à comprendre l'utilité puisque DownloadStation utilise déjà des liens durs entre le fichier téléchargé (visible dans le répertoire de destination de DownloadStation) et le fichier seedé (celui nommé dans ce thread comme 'caché'). Donc ceci "Ce qui fait que l'on se retrouve avec le double des données utilisées sur le disque.... " est faux. Le fichier existe à 2 endroits différents mais l'espace occupé n'est pas doublé. Modifié le 16 décembre 2016 par lordtaki ajout explication 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kazaam Posté(e) le 26 décembre 2016 Auteur Partager Posté(e) le 26 décembre 2016 Hello C'est ce que j'avais lu mais il semble que ca ne soit pas le cas Voici le fichier coté dossier de download station Et le meme coté repertoire de destination Meme date, meme taille mais je ne vois pas de lien entre les 2 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 26 décembre 2016 Partager Posté(e) le 26 décembre 2016 (modifié) Le 16/12/2016 à 10:58, lordtaki a dit : J'ai du mal à comprendre l'utilité puisque DownloadStation utilise déjà des liens durs entre le fichier téléchargé Je confirme, c'es des hardlink (lien dur) depuis ... le début de download station je pense Utilité : juste avoir un risque de tout planté avec des manip plus que hasardeuses ... en plus transformé des hardlink en softlink prennent + de place sur le disk Modifié le 26 décembre 2016 par gaetan.cambier 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
lordtaki Posté(e) le 27 décembre 2016 Partager Posté(e) le 27 décembre 2016 Un lien en dur ne va pas se voir comme un lien sysmbolique avec la commande 'ls'. http://unix.stackexchange.com/questions/167610/determining-if-a-file-is-a-hard-link-or-symbolic-link if [ "$(stat -c %h -- "$file")" -gt 1 ]; then echo "File has more than one name." fi 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kazaam Posté(e) le 27 décembre 2016 Auteur Partager Posté(e) le 27 décembre 2016 Arg ou plus simple readlink FILE; echo $? j'avais pas le echo donc ca ne donnait rien.... Ok pour le hardlink mais alors comment faire reprendre un torrent a download station? Si j'en supprime un, que je recharge le torrent, impossible de le reassocier au fichier existant, il veut le retelecharger 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.