Contenu | Rechercher | Menus

Annonce

Le forum rencontre en ce moment quelques soucis de charge, il est possible qu'une erreur soit affichée quand vous postez un message, ne rechargez pas la page au risque de poster une seconde fois votre message

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

nombre réponses : 25

#0 -1 »  Piloter volume application par molette souris sur icone » Le 30/04/2013, à 11:07

thurston
Réponses : 0

Bonjour,

Est ce quelqu'un sait si il est possible d'attribuer la fonction de modification du volume d'une application en simplement passant le curseur de la souris sur celui ci dans sa barre de lancement unity, et en jouant avec la molette de la souris.
En gros, je lance ario (lecteur mpd) ou quodlibet, et, sans avoir à rétablir sa fenetre, je peux changer le volume du son avec la molette sur son icone, sans quitter mon travail actuel sous firefox par exemple.
A+
T

#1 -1 »  update sur 12.04 > resolution en vrac » Le 13/04/2013, à 21:32

thurston
Réponses : 7

Bonjour,

Suite à une update sur une 12.04, impossible de retrouver ma resolution initiale.
J'ai le souci sur 2 pc donc je me dis que ca ne vient pas de mes config, mais de l'update qui n'accepte plus mes settings.
Quelqu'un a t il rencontré le meme souci.
Merci de me dire quoi poster pour avancer.
Je crois utiliser X-server (xorg.conf), mais je ne suis sur de rien. (pas très à l'aise avec tous les fichiers de config, drivers et autres).
Merci d'avance
A+
T

#2 Re : -1 »  update sur 12.04 > resolution en vrac » Le 14/04/2013, à 13:43

thurston
Réponses : 7

Alors, ci joint

lspci -vnn | grep '\''[030[02]\]'
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108 [GeForce GT 425M] [10de:0df0] (rev a1) (prog-if 00 [VGA controller])

j'ai généré des xorg.conf, en utilisant

sudo dpkg-reconfigure xserver-xorg
sudo nvidia-xconfig

puis j'ai installé manuellement une résolution

gtf 1680 1050 60

  # 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
  Modeline "1680x1050_60.00"  147.14  1680 1784 1968 2256  1050 1051 1054 1087  -HSync +Vsync

J'ai rajouté les options suivantes dans device de l'xorg.conf

    Option "UseEDID" "FALSE"
    Option "UseDisplayDevice" "DFP"
    Option "UseEDIDFreqs" "FALSE"
    Option "ModeValidation" "NoEdidModes"

Ca marche pas, impossible également d'utiliser le pilote proprio de nvidia par l'installeur de pilote graphique...
Help me
A+
T
mon xorg.conf

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 304.88  (buildmeister@swio-display-x86-rhel47-14)  Wed Mar 27 15:36:45 PDT 2013


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"

    Modeline "1680x1050_60.00"  147.14  1680 1784 1968 2256  1050 1051 1054 1087  -HSync +Vsync
    Modeline "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option "UseEDID" "FALSE"
    Option "UseDisplayDevice" "DFP"
    Option "UseEDIDFreqs" "FALSE"
    Option "ModeValidation" "NoEdidModes"    
    
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
	Modes 	    "1680x1050_60.00"
    EndSubSection
EndSection

#3 Re : -1 »  update sur 12.04 > resolution en vrac » Le 20/04/2013, à 09:26

thurston
Réponses : 7

Au fait, j'avais résolu mon probleme, mais en faisant un million de manip, donc pas sûr de ce qui a compté.
Néanmoins, j'ai effectué ceci:

sudo apt-get purge nvidia-*
sudo apt-get autoclean
sudo apt-get install nvidia-common
sudo apt-get install --reinstall linux-headers-`uname -r`

Au cas où
T

#4 -1 »  Question concernant l'imprimante DCP-9010CN (scanner) » Le 17/02/2013, à 17:17

thurston
Réponses : 1

Bonjour,

Est ce que quelqu'un peut confirmer, qu'avec cette imprimante connectée à un réseau ethernet (gigabit), l'on peut lancer une numérisation (scanner) d'un document sur l'imprimante, sans AUCUN pc client allumé, à destination d'un email, ou d'un fichier sur le serveur. Le serveur est les clients sont sur ubuntu.
Ce qui m'intéresse vraiment c'est la possibilité de scanner à destination d'un email (donc en pdf ou jpg) sans aucun contrôle avec un pc (mon imprimante réseau n'est pas à coté d'un pc client). En gros, je connecterais cette imprimante à ma box, je dois pouvoir numériser sur un email distant, genre compte google ou laposte.
D'avance merci
Thurston

#5 -1 »  [RESOLU] WD30EZRX pas 100% compatible avec tout hardware? » Le 20/01/2013, à 08:47

thurston
Réponses : 3

Bonjour

j'ai bien du passer plusieurs heures à essayer de formater ce disque en une partition GPT puis ext4 en utilisant parted.
Rien n'y fait, et ce sur plusieurs PC 12.04 server (tout change sauf le disque): je rencontre des soucis de débits instables à l'écriture qui peuvent descendre à quelques Mo/s quand ils devraient etre à plusieurs dizaines de Mo/s.
Le probleme vient semble t il de ceci
Sector size (logical/physical): 512B/4096B

Beaucoup de posts sur le sujet, mais de mon coté impossible d'obtenir une situation stable.
Quelqu'un a t il réussi à le faire fonctionner décemment sur Ubuntu?
Je précise que le problème n'est pas la limite des 2.2Tb, mais bien un alignement des secteurs lors des opérations de création de partitions et formatage.
D'avance merci
thurston

#6 Re : -1 »  [RESOLU] WD30EZRX pas 100% compatible avec tout hardware? » Le 20/01/2013, à 10:13

thurston
Réponses : 3

Ah oui désolé, le disque est utilisé en disque données, pas système.
Et oui c'est un sata.
Le problème est connu sur ce type de disque 512/4096
lien 1
lien 2
lien 3
J'ai essayé un peu toutes les combinaisons, sous parted align optimal, minimal, commencer à 2048 sectors, bien respecter des secteurs divisibles par 2048 au mieux, jouer avec le jumper 7-8 du disque, rien n'y fait, impossible d'écrire dessus avec des bons débits (ca a l'air de fonctionnner puis ca se casse la figure).
Ma question est:
est ce quelqu'un a en ce moment ce disque sur un ubuntu, fonctionne t il? avec quels débits? et si c'est le cas, pouvez vous poster vos commandes parted? Je crois avoir fait le tour de tous les blogs sur le sujet, j'ai tout essayé ou presque, mais ca ne fonctionne toujours pas...
merci par avance
thurston

#7 Re : -1 »  [RESOLU] WD30EZRX pas 100% compatible avec tout hardware? » Le 27/01/2013, à 13:59

thurston
Réponses : 3

Bon, plus qu'étrange mais validé avec x tests:
J'ai 2 disques WD eco green
WDC WD20EARX = 2Tb
WDC WD30EZRX = 3Tb

Je les monte dans un rack 5.25" pour disque SATA (5x) de marque supermicro CSE-M35T1. Jusque là jamais eu de souci, débits identiques disque monté dans ce chassis, ou directement avec cable. Vérifié sur le 2Tb...mais pas sur le 3Tb, qui refuse de fonctionner une fois dans la baie, et qui fonctionne bien en direct. problème de susceptibilité au bruit electrique ???? A force de descendre les conso, les signaux ne sont plus assez robustes?
En tous les cas, sans doute aucun, testé sur une ubuntu 12.04, 12.04 LTS, et meme une debian.

A noter que pour la petite histoire, nfs4 c'est pas gagné non plus avec des fichiers de grande taille (plusieurs centaines de Mo). Du coup inhiber coté server nfs par cette commande:

sudo nedit /etc/default/nfs-kernel-server

RPCNFSDCOUNT='8 --no-nfs-version 4'

puis bien sur

sudo /etc/init.d/nfs-kernel-server restart

Du coup quand le hardware fonctionne ca donne ca pour la partie formatage

(parted) mklabel                                                          
Nouveau type d'étiquette de disque ? gpt                                  
Avertissement: Le type du disque /dev/sdb va être effacé et toutes les données vont être perdues. Voulez-vous continuer ?
Oui/Yes/Non/No? oui                                                       
(parted) mkpart primary ext4 1M 100%                                      
(parted) align-check                                                      
type d'alignement (min/opt)  [optimal]/minimal? opt                       
Numéro de partition ? 1                                                   
1 aligned
(parted) align-check                                                      
type d'alignement (min/opt)  [optimal]/minimal? minimal                   
Numéro de partition ? 1                                                   
1 aligned
(parted) q                                                                
Information: Ne pas oublier de mettre à jour /etc/fstab si nécessaire.

On peut faire un check de l'alignement au secteur pret, avec

unit s

passé en commande, puis un print.

puis

sudo mkfs.ext4  /dev/sdb1

Et enfin, pour fstab

sudo blkid

A+
Thurston

#8 Re : -1 »  WD Caviar Green WD30EZRX 3TB problème alignement partition sous ubuntu » Le 08/01/2013, à 22:56

thurston
Réponses : 3

Bonjour,

au cas où as tu trouvé la solution?
J'ai le meme disque et j'ai des performances en écriture qui sont catastophiques, et me demande si cela ne vient pas de ce que tu notes dans ton post.
A+
T

#9 Re : -1 »  WD Caviar Green WD30EZRX 3TB problème alignement partition sous ubuntu » Le 14/01/2013, à 20:49

thurston
Réponses : 3

ok merci

bon j'ai formaté en gpt en en sacrifiant le premier Mo, ca donne ca et ca semble ok, et attention si pas ext2 spécifié dans mkpart, pas de UUID généré...bizarre. (même si on choisit ext2, on formate après coup en ext4 et tout ok

Création partition gpt (>2Tb)

sudo parted /dev/sdc
(parted) mklabel gpt  
(parted) mkpart primary ext4 1M 3001G                                     
(parted) mkpart primary ext4 1M -1 (équivalent ligne ci dessus, utilise toute la taille dispo)
(parted) print
(parted) align-check optimal                                             
(parted) Numéro de partition ? 1                                               
(parted) 1 aligned
(parted) quit

Formatage en ext4

sudo mkfs.ext4 /dev/sdc1

Récupération de l'UUID histoire de monter le disque dans fstab

sudo blkid

#10 -1 »  [RESOLU] nfs fstab share plus monté après migration 10.04 > 12.04 » Le 05/01/2013, à 17:06

thurston
Réponses : 0

Bon

J'y ai passé pas mal de temps. Un serveur 10.04 qui fonctionne parfaitement avec un fstab qui monte des repertoires en nfs.
migration vers 12.04: plus d'auto mount en fstab des repertoires nfs, en auto au démarrage, mais ok manuellement.
la solution pour ma part:

sudo apt-get install rpcbind

sur le serveur et tout rentre dans l'ordre
si ca peut aider...
A+
T

#11 -1 »  Check auto d'un serveur (disque dur, etc...) > Email » Le 03/01/2013, à 13:51

thurston
Réponses : 4

Bonjour,

Je m'occupe d'un serveur à distance (200km), administré par ssh. Tout roule, je fais des backup avec rdiff-backup effectué automatiquement avant extinction du serveur, en cas de non activité détectée. (en gros, plus d'utilisateur sur le réseau > rdiff backup > shutdown)
A la fin du rdiff, un email m'est envoyé pour m'indiquer que l'opération s'est bien déroulée.
Je voudrais ajouter à cet email des vérifications du système (intégrité) et surtout l'état des disques durs, histoire de connaitre l'état des données que je sauvegarde par exemple, et détecter au plus tot un pb eventuel (histoire d'immédiatement backuper ou pas en restore).
On parle de 2 disques dur de 3Tb chacun (un seul disque de 3Tb, pas de raid ou lvm).
Je voudrais que ces checks ne soient pas trop longs idéalement, avec une info assez synthétique à placer dans un email.
Avez vous des suggestions? d'avance merci
(j'ai déjà parcouru des pages sur le sujet, mon problème est d'en faire assez et pas trop).
A+
T

#12 Re : -1 »  Check auto d'un serveur (disque dur, etc...) > Email » Le 03/01/2013, à 20:33

thurston
Réponses : 4

ok merci pour les pistes.
En fait, je détecte qu'il n'y a plus d'utilisateurs connectés au serveur, et ce dernier se coupe automatiquement au bout d'1/2 h si tjrs personne.
Ok pour le check des disques durs. J'avais tenté fsck pour faire des checks du système de fichiers, mais très long sur les 2 disques de 3Tb.
A+
T

#13 Re : -1 »  Check auto d'un serveur (disque dur, etc...) > Email » Le 04/01/2013, à 11:11

thurston
Réponses : 4

ok merci, oui, je suis en ext4, mais sur mes 3Tb c'est plus long..(bizarre en fait, un a été très rapide quelques minutes, mais l'autre au moins 30-40min).
wakeonlan + crontab au démarrage, ca réveille le serveur. cela met quelques minutes à être dispo, et cela n'autorise pas les machines à etre en veille...(perte du serveur lorsqu'elles se réveillent). Néanmoins ca marche.
A+
T

#14 Re : -1 »  Remboursement de licence : ASUS : un peu long, mais tout bon ! » Le 12/11/2012, à 23:12

thurston
Réponses : 51

Bon Asus, tout bon. 43 euros viré comme il se doit.
La procédure de remboursement est à mon avis simplifié au max (5 min à remplir les papiers). L'étiquette elle se décole, faut pas exagérer. Et pas d'histoire coté support, sympa, efficace. Si on ajoute que Asus est (sur 4 portables testés) toujours ultra compatible pour ma part avec les distrib ubuntu, c'est tout bon.
Alors bien sûr les esprits puristes réclament une procédure encore plus simple avec un choix à la commande. Un jour peut etre, en tous les cas aujourd'hui, Asus c'est réglo et ca c'est réel et maintenant.
A+
Thurston

#15 Re : -1 »  Remboursement de licence : ASUS : un peu long, mais tout bon ! » Le 29/11/2012, à 20:50

thurston
Réponses : 51

ouais, on est tous d'accord...m'enfin, on peut aussi souligner que certains constructeurs sont mieux que d'autres, même si on vit dans un monde imparfait.
Pour moi, et à l'actuel, ca reste un bon choix, et je vis avec et conseille Asus pour un compromis acceptable.
A+
T

#16 Re : -1 »  [RESOLU] Compacter une phrase complète pour low char display » Le 03/09/2012, à 21:46

thurston
Réponses : 48

Bonjour

Le sujet de ce post est issu d'un projet global décrit ici.
A+
T

#17 -1 »  [INFO] Script de synchronisation contenu musical à player de TOUT type » Le 02/09/2012, à 11:49

thurston
Réponses : 0

Bonjour

Ce post est un "mémoire" et présente des infos, et ne demande pas d'aide en particulier. Peut être aidera t il une tierce personne qui se pose les mêmes questions et l'orientera t il alors vers les bons posts.
J'ai eu l'idée d'un script qui me permette de gérer les lecteurs mp3 d'une famille (4 enfants de 3 à 10 ans + ma femme non experte en informatique).

L'idée est:

  1. de pouvoir utiliser n'importe quel outil musical (création de m3u) ou non (folder ou files) pour la sélection de contenu

  2. utiliser un fichier texte global qui renferme les owners + leurs préférences + leur sélections, fichier utilisé à chaque synchro

  3. compresser la musique une fois pour toute, à la première demande, en la stockant compressée et en attente d'utilisation

  4. synchroniser les players des uns des autres au regard de l'owner du player pour aller chercher ses sélections, qui peuvent soit faire appel à:

    • fichiers directement

    • folders complets

    • listes m3u
      et important

    • avec la possibilité de concaténer tout type d'origine (file + folder + m3u)

    • avec la possibilité de séparer en répertoire spécifique sur le player
      ex: speed.m3u + pop.m3u > Player/rapide et, dans la même synchro, zen.m3u + /cool/ > Player/lent/

    • le type de player utilisé pour organiser la musique en optimisant son stockage

Mon expérience/vécu
Les infos que je peux donner sur le sujet (mon script fait 1200 lignes environ, et n'a pas je pense d'intérêt à être posté en vrac):

  • Un player mp3 gerant les tags ne demandent pas d'attention quant au stockage et à la manipulation de la source à la destination

  • Un player très basique à navigation par folder only mais à forte capacité (carte uSD) est très problématique, si le choix de lecture n'est pas l'aléatoire (car-player, china-low cost player...). Il faut en effet faire face à 2 fortes limitations habituelles

    • L'afficheur très limité: 16 char voire moins

    • La navigation dans 200 ou 300 folders devient vite un cauchemar.

Mes choix:

  • rsync pour la synchronisation d'une structure à chaque fois ré-écrite en lien dur dans un répertoire temp (en fonction des préférences). Ce choix était judicieux je trouve pour ré-utiliser les fichiers déjà compressés et dispo et les réarranger, voire les renommer si besoin pour les réutiliser à dessein pour synchro avec le contenu du player.

  • une navigation folder sous la forme (important pour les navigation par folder only)
    /media/player/MUSIC/genre/artiste/YYYY-album/song.mp3
    /media/player/selection/artiste/YYYY-album/song.mp3
    sélection représente alors une envie d'un type de musique: zen, speed avec le contenu qui suit.
    ou encore pour certains players très limité (ARCHOS 10B)
    /media/player/selection/artiste.song.mp3

  • Une structure adaptée si trop nombreux répertoires
    (100 artistes sous le même genre demande 50 clics pour accéder au centre, quand on peut réduire la distance à 10 clics ( en subdivisant les 100 artistes en 10 sous folders ce qui donne une distance max de (<>) 5 + 5(^v)  2 sens autorisés) avec une structure auto adaptative)

  • Une navigation faisant appel à un naming des fichiers et folders adaptés à des display low char, et donc à un compactage fort artiste(8)-title(7) (dans le cas d'un display 16 char only)

  • Une interface zenity qui lance la synchro (owner + player connecté détecté) automatiquement (ou pas, avec possibilités de synchroniser en manuel)

Le résultat est splendide (toute la famille est contente)

  • on fait les playlist sur ario ou quodlibet (playlist automatique possible)

  • on fait (moi) une fois pour toutes le fichier de correspondance entre owner et preferences

  • chaque owner connecte son lecteur mp3 recensé, appuie sur une icone et zou.

Le gros + par rapport à n'importe quel soft dispo (j'ai pas regardé ce qui existait à vrai dire) concerne les players à navigation par folder only et se situe sur

  • la gestion des display low char, et la navig par folder adapté au player.
    (mon car player a retrouvé mes grâces dans les déplacements dans les folders)

  • la gestion intelligente de plusieurs milliers de mp3

"Mon" script repose pour les partie les plus avancées (et les plus utiles) sur les contributions de 2 personnes à qui je voudrais rendre "hommage", en rassemblant leur efforts ci dessous

  1. pingouinux
    [RESOLU] Compacter une phrase complète pour low char display

  2. sputnick
    [RESOLU]Compacter un répertoire avec de nombreux sous répertoires

J'ai également utilisé ce post pour des problèmes d'affichage retrouvant dans les liens des contenus les infos minimale à destination de l'utilisateur pour rendre plus facile le choix.
[RESOLU] Aide sed awk et printf pour chaîne char à manipuler

Merci donc au forum et à pingouinux & sputnick, je suis un fan absolu de musique (alternative) avec plusieurs milliers de CD numérisés et autres digital songs prises (gratuites) sur bandcamp, et ce script change ma vie.
A+
T

PS:
(je recommande au fait le player SANDISK SANSA CLIP ZIP, assez merveilleux - navigation par tag)
si moins d'argent, j'ai utilisé beaucoup le MPMAN30WOM (carte micro sd) à 10 euros nécessitant alors le script

exemple de structure obtenu par le script et les astuces développées dans les post ci dessus

tree /media/virtualmp3/TEST
/media/virtualmp3/TEST
├── Alternative.Rock
│   └── Free.Kitten
│       ├── Fre.Kitt-1.10.mp3
│       ├── Fre.Kitt-Ala.Lic.mp3
│       ├── Fre.Kitt-Bananas.mp3
│       ├── Fre.Kitt-Billboa.mp3
│       ├── Fre.Kitt-Bli.Fes.mp3
│       ├── Fre.Kitt-Bou.Boy.mp3
│       ├── Fre.Kitt-Cal.Bac.mp3
│       ├── Fre.Kitt-Cleopat.mp3
│       ├── Fre.Kitt-Coc.The.mp3
│       └── Fre.Kitt-Dad.Lon.mp3
└── Noise
    ├── A-H
    │   ├── Ada.Fran.Bol.Mel
    │   │   ├── Ada.Fran-Car.Cit.mp3
    │   │   ├── Ada.Fran-Guernic.mp3
    │   │   ├── Ada.Fran-I.Mecha.mp3
    │   │   ├── Ada.Fran-I.Right.mp3
    │   │   ├── Ada.Fran-Lor.Was.mp3
    │   │   ├── Ada.Fran-Mar.Gun.mp3
    │   │   ├── Ada.Fran-She.Clo.mp3
    │   │   └── Ada.Fran-Sin.Shi.mp3
    │   ├── Adam.Franklin
    │   │   ├── Ada.Fran-Aut.Lea.mp3
    │   │   ├── Ada.Fran-Big.Sur.mp3
    │   │   ├── Ada.Fran-Birdson1.mp3
    │   │   ├── Ada.Fran-Birdson.mp3
    │   │   ├── Ada.Fran-Bir.Moo.mp3
    │   │   ├── Ada.Fran-Bol.Mel.mp3
    │   │   └── Ada.Fran-Can.Isl.mp3
    │   └── Heavy.Blanket
    │       ├── Hea.Blan-Blockhe.mp3
    │       ├── Hea.Blan-Cor.Thr.mp3
    │       ├── Hea.Blan-Dr.Mart.mp3
    │       ├── Hea.Blan-Gal.Unk.mp3
    │       ├── Hea.Blan-No.Tell.mp3
    │       └── Hea.Blan-Spi.The.mp3
    ├── J-M
    │   ├── Jay.Mascis
    │   │   ├── Jay.Masc-A.Littl.mp3
    │   │   ├── Jay.Masc-Amm.Wha.mp3
    │   │   ├── Jay.Masc-Hea.Nan.mp3
    │   │   ├── Jay.Masc-Hel.Amm.mp3
    │   │   ├── Jay.Mascis-Can.I.mp3
    │   │   ├── Jay.Masc-Is.Done.mp3
    │   │   ├── Jay.Mascis-Lokah.mp3
    │   │   ├── Jay.Masc-I.Think.mp3
    │   │   └── Jay.Masc-Lea.Pla.mp3
    │   ├── Jay.Masc.The.Fog
    │   │   ├── Ja.Mas.Th-Bobbin.mp3
    │   │   ├── Jay.Masc-All.Gir.mp3
    │   │   ├── Jay.Masc-Ammarin.mp3
    │   │   ├── Jay.Masc-Bac.Bef.mp3
    │   │   ├── Jay.Masc-Can.Sto.mp3
    │   │   ├── Jay.Masc-Can.Tak.mp3
    │   │   ├── Jay.Masc-Doe.Kis.mp3
    │   │   ├── Jay.Masc-Eve.Let.mp3
    │   │   ├── Jay.Masc-Freedom.mp3
    │   │   ├── Jay.Masc-Fre.Fre.mp3
    │   │   ├── Jay.Masc-Gro.You.mp3
    │   │   └── Jay.Masc-I.Fine.mp3
    │   └── Magnetic.Morning
    │       ├── Magn.Mor-And.Won.mp3
    │       ├── Magn.Mor-At.Cros.mp3
    │       ├── Magn.Mor-Athen.5.mp3
    │       ├── Magn.Mor-Col.Cla.mp3
    │       ├── Magn.Mor-Col.Kid.mp3
    │       ├── Magn.Mor-Com.Bac.mp3
    │       ├── Magn.Mor-Don.Dre.mp3
    │       └── Magn.Mor-Ind.Sum.mp3
    └── P-T
        ├── Pixies
        │   ├── Pixies-Alec.Eiff.mp3
        │   ├── Pixies-Bai.s.Wal.mp3
        │   ├── Pixies-Bi.Dr.Oly.mp3
        │   ├── Pixies-Bone.Mach.mp3
        │   ├── Pixies-Bre.My.Bo.mp3
        │   ├── Pixies-Bri.Is.Re.mp3
        │   ├── Pixies-Brok.Face.mp3
        │   ├── Pixies-Buil.High.mp3
        │   ├── Pixies-Cactus.mp3
        │   ├── Pixies-Caribou.mp3
        │   ├── Pixies-Crac.Jone.mp3
        │   ├── Pixies-Dan.Th.Ma.mp3
        │   ├── Pixies-Dead.mp3
        │   ├── Pixies-Debaser.mp3
        │   ├── Pixies-Dis.Eq.Ti.mp3
        │   ├── Pixies-Ed.Is.Dea.mp3
        │   ├── Pixies-Evil.Hear.mp3
        │   ├── Pixies-Gigantic.mp3
        │   ├── Pixies-Goug.Away.mp3
        │   ├── Pixies-Head.On.mp3
        │   ├── Pixies-He.Com.Yo.mp3
        │   ├── Pixies-Hey.mp3
        │   ├── Pixies-I.Bee.Tir.mp3
        │   ├── Pixies-I.Bleed.mp3
        │   ├── Pixies-I.m.Amaze.mp3
        │   ├── Pixies-In.Th.Whi.mp3
        │   ├── Pixies-Is.De.Enc.mp3
        │   ├── Pixies-La.Lov.Yo.mp3
        │   ├── Pixies-Le.To.Mem.mp3
        │   ├── Pixies-Levita.Me.mp3
        │   ├── Pixies-Lovel.Day.mp3
        │   ├── Pixies-Mo.Go.Hea.mp3
        │   ├── Pixies-Mot.To.Ro.mp3
        │   ├── Pixies-Mr.Grieve.mp3
        │   ├── Pixies-N°.13.Bab.mp3
        │   ├── Pixies-Nim.s.Son.mp3
        │   ├── Pixies-Oh.My.Hol.mp3
        │   ├── Pixies-Pal.Th.Br.mp3
        │   ├── Pixies-Pla.Of.So.mp3
        │   ├── Pixies-Rive.Euph.mp3
        │   ├── Pixies-Silver.mp3
        │   ├── Pixies-Som.Ag.Yo.mp3
        │   ├── Pixies-Space.mp3
        │   ├── Pixies-Subbacult.mp3
        │   ├── Pixies-Tame.mp3
        │   ├── Pixies-The.Fr.Na.mp3
        │   ├── Pixies-The.Go.Gu.mp3
        │   ├── Pixies-The.Thing.mp3
        │   ├── Pixies-Th.Hol.So.mp3
        │   ├── Pixies-Th.Nav.Kn.mp3
        │   ├── Pixies-Th.Sa.Pun.mp3
        │   ├── Pixies-Ton.s.The.mp3
        │   ├── Pixies-Tro.le.Mo.mp3
        │   ├── Pixies-U.Mass.mp3
        │   ├── Pixies-Vamos.II.mp3
        │   ├── Pixies-Vamos.mp3
        │   ├── Pixies-Wa.Of.Mut.mp3
        │   ├── Pixies-We.At.Sch.mp3
        │   └── Pixies-Whe.Is.Mi.mp3
        ├── Sebadoh
        │   ├── Sebadoh-All.Kind.mp3
        │   ├── Sebadoh-Arbi.Hig.mp3
        │   ├── Sebadoh-I.Dont.mp3
        │   ├── Sebadoh-Kee.Aliv.mp3
        │   └── Sebadoh-My.Drugs.mp3
        └── Toshack.Highway
            ├── Tosh.Highw-Theme.mp3
            ├── Tos.High-Bel.Tra.mp3
            ├── Tos.High-Boa.Bul.mp3
            ├── Tos.High-Can.Isl.mp3
            ├── Tos.High-Can.Row.mp3
            ├── Tos.High-Cou.Gra.mp3
            ├── Tos.High-Eve.Sav.mp3
            ├── Tos.High-Har.Cop.mp3
            ├── Tos.High-I.Felli.mp3
            ├── Tos.High-I.Thoug.mp3
            └── Tos.High-Jus.Lan.mp3

#18 -1 »  [RESOLU] Aide sed awk et printf pour chaine char à manipuler » Le 31/08/2012, à 23:25

thurston
Réponses : 7

Bonjour

J'ai une phrase type comme suit (correspond à ce que je dois concaténer d'origine diverses U: m3u, F: file, D: repertoire)
zen:U|/media/zen.m3u#D|/media/mpd-Playlists#U|/tmp/speed.m3u#F|/tmp/song.mp3

EDIT: il manquait un | après le dernier F, corrigé pour cohérence dans l'énoncé

J'aurais voulu conserver tout ce qui est en gras avec une manipulation (sed, awk, printf?...), à savoir pour simplifier et en conservant leur ordre d'apparition dans la phrase (c'est pour rappeler dans une fenetre zenity (les chemins sont bien plus longs que ceux montrés) l'essentiel pour choix):
- toutes les lettres avant |
- tout ce qui se trouve entre le dernier / et le # suivant
- et tout ce qui se trouve entre le tout dernier / et la fin de la phrase.

Le bonus serait d'intercaler
- le caractère : entre U,F,D (type de source) et la source effective réduite au "basename"
- et un + entre les blocs indiquant la concaténation.
Ca donnerait donc, sur l'exemple:
U:zen.m3u + D:mpd-Playlists + U:speed.m3u + F:song.mp3

je bidouille depuis + d'1/2 heure google + autre...mais y a pas, moi pas parler sed. (m'a semblé indiqué, avec awk et printf...)
Quelqu'un peut etre?
D'avance merci
A+
T

#19 Re : -1 »  [RESOLU] Aide sed awk et printf pour chaine char à manipuler » Le 01/09/2012, à 09:51

thurston
Réponses : 7

Ah zut, désolé pour l'énoncé inexact. Non de non, pourtant j'avais voulu que ce soit clair.
J'ai corrigé dans le premier test et merci encore à tous les 2, ca va vraiment rendre mon interface de script super efficace
(J'étais loin d'y arriver au fait, malgré google et autre).
A+
T

@pingouinux: il va bientot plus rester grand chose qui n'a pas été touché par tes soins dans mon gros script de traitement de biblio mp3. Le résultat est quasi atteint et ces derniers détails d'interface fignolent le tout vraiment bien. Tu avais bien sûr repéré la continuité dans mes différents posts. (je prépare le post décrivant le principe: montré à des potes et validé à l'utilisation par des non-informaticiens de 4 à 42 ans pour l'instant.)

#20 Re : -1 »  [RESOLU] Aide sed awk et printf pour chaine char à manipuler » Le 01/09/2012, à 13:49

thurston
Réponses : 7

ok merci cette dernière version m'est en plus abordable (je veux dire pour compréhension et réutilisation dans d'autres contextes similaires)
A+
T

#21 Re : -1 »  [RESOLU]Compacter un repertoire avec de nombreux sous repertoires » Le 31/08/2012, à 11:35

thurston
Réponses : 24

Bon alors, le script suivant fonctionne plutot bien, je crois.
J'ai retravaillé la fonction du nbre optimum à mon avis de répertoire réorganisés.
Ca donne ceci.
je continue les tests avec des noms exotiques pour voir le comportement (chiffre et autre en début de naming).
Merci vraiment à sputnick et à pingouinux qui m'ont permis de réviser chacun mes idées initiales et un grand merci à sputnick qui a fait la partie noble et très optimisée du script.

#!/bin/bash

compact_folder() {
# function developped by sputnick
    test=`ls "$1"`
    if [ "$test" = "" ]; then return; fi
    cd "$1"
    maxfiles=$2

    # on crèe un tableau
    files=( * )

    # on itère sur les fichiers
    for ((i=0; i<${#files[@]}; i++)); do
        curfile="${files[i]}"

        # on test si il reste un reste à la division de l'index/maxfiles (modulo) : multiple de maxfiles
        if ! ((i % maxfiles)); then
            lastone="${files[i+maxfiles-1]}"
            c=0
            until [[ -e "$lastone" ]]; do
                lastone="${files[i+maxfiles-1-c++]}"
            done
            curdir="${curfile:0:1}-${lastone:0:1}"
            mkdir -p "$curdir"
        fi

        mv "$curfile" "$curdir"
    done
}

function folder_read()
{
while read folder; do echo "$folder"; done < <(find "$1")
}

function folder_optimization()
{
# $1: folder to re-arrange
#
master_folder="$1"
max_initial_depth=`find "$master_folder" -printf '%d\n' | sort -n  | tail -1`
echo $max_initial_depth
depth=$(bc <<<"$max_initial_depth") #faudrait pas que je commence à $max_initial_depth-1 ?

while [ $(( depth+1 )) -gt 0 ] #je pars du plus profond en remontant jusqu'au dernier niveau
do
   while read folder
   do
      nb_folder=`find "$folder" -mindepth 1 -maxdepth 1 -type d ! -name ".*" | wc -l` # je compte son nombre de sous repertoires
      if [ $nb_folder -gt 8 ]
      then
         param=$(bc -l <<<"sqrt($nb_folder-1)+1")
         param=`echo "($param)/1" | bc` #partie entière
         compact_folder "$folder" $param #et je compacte en utilisant la fonction
      fi
   done < <(find "$master_folder" -mindepth $depth -maxdepth $depth -type d ! -name ".*" | sort -n) # je liste les répertoires ayant des sous répertoires
   depth=$(( depth-1 )) # je remonte d'un cran
done
}

folder_optimization "$1"
#folder_read "$1"
exit

#22 Re : -1 »  [RESOLU]Compacter un repertoire avec de nombreux sous repertoires » Le 31/08/2012, à 18:48

thurston
Réponses : 24

Bon j'ai trouvé une limitation au script de sputnick, pas très genante en réalité.
Dans le cas où on a x repertoires devant etre traités, et commencant tous par la meme lettre, le script ne fonctionne pas.
Attention, ce cas n'est pas hypothétique dans mon cas car j'avais décidé de nommer mes albums comme suit
YYYY-Album_name
Exemple: 2011-Sonic Death
A comparer le résultat du script de sputnick sur

rm -rf /tmp/Post\ Rock/*; mkdir /tmp/Post\ Rock/a{a..l}album;touch /tmp/Post\ Rock/a{a..l}album/song

résultat:

tree /tmp/Post\ Rock/
/tmp/Post Rock/
└── a-a
    ├── aaalbum
    │   └── song
    ├── abalbum
     ....
    ├── akalbum
    │   └── song
    └── alalbum
        └── song

A comparer avec

rm -rf /tmp/Post\ Rock/*; mkdir /tmp/Post\ Rock/{a..l}album;touch /tmp/Post\ Rock/{a..l}album/song

résultat

tree /tmp/Post\ Rock//tmp/Post Rock/
├── a-e
│   ├── aalbum
│   │   └── song
│   ├── balbum
│   │   └── song
│   ├── calbum
│   │   └── song
│   ├── dalbum
│   │   └── song
│   └── ealbum
│       └── song
├── f-j
│   ├── falbum
│   │   └── song
│   ├── galbum
│   │   └── song
│   ├── halbum
│   │   └── song
│   ├── ialbum
│   │   └── song
│   └── jalbum
│       └── song
└── k-l
    ├── kalbum
    │   └── song
    └── lalbum
        └── song

#23 Re : -1 »  [RESOLU]Compacter un repertoire avec de nombreux sous repertoires » Le 31/08/2012, à 19:27

thurston
Réponses : 24

ok merci pour l'optimisation. (testé intégré dans mon script, avec mon nombre "optimum" de folders cibles...(pas sûr que mon analyse résiste à une étude sérieuse, mais largement suffisant pour l'instant).
effectivement tu as vu la limitation
"Bon, j'ai tout revu en simple et efficace, le seul truc c'est que quand ya admettons 10 répertoires qui correspondent à a-a, il y aura au moins donc 10 répertoires dans a-a"

C'est en réalité peu gênant dans mon cas, car j'ai décidé de ne pas compacter les albums (seuls les artistes sous les genres), et donc le problème de l'année en début qui rassemble beaucoup d'albums (tous les 20xx-) comme partageant la première et même souvent les 3 premières lettres 201x (qui me permet d'ordonner du plus anciens au plus récent) ne se pose pas en pratique.
Merci pour le script très très efficace à l'utilisation.
A+
T

#24 Re : -1 »  [RESOLU]Compacter un repertoire avec de nombreux sous repertoires » Le 31/08/2012, à 20:09

thurston
Réponses : 24

oui merci pour les commentaires et le commentaire. Maintenant avec 4 momes en bas âge+  un boulot un peu beaucoup prenant + un parcours par Windows fatal donc perte seche sur bash et consorts, l'aide du forum est très appréciée, et personnaliser les scripts proposés par des experts comme vous autres est une étape qui s'étale dans le temps...enfin pour ma part au moins.
Je me suis rendu compte au contact de pingouinux récemment que je bricolais des scripts très bof vers un but (je validais en gros le cahier des charges sur résultat, avec script très limité et assez horrible) et si j'arrivais à intéresser un pro, ça donnait des scripts sympa à l'arrivée, comme le script que tu as proposé et qui reste à des années lumières de ce que je peux véritablement appréhender...pour l'instant.
En tous les cas merci
A+
T

PS: options -depth, mon script marchait pas et j'ai du croire que je l'utilisais mal, du coup l'horrible centrage entre min et max a été une solution...pas très élégante c'est le moins que l'on puisse dire...à revoir bien sûr.

EDIT: Du coup, une version correspondant 100% à mon utilisation (je compacte les artistes et genres pour naviguer rapidement dedans, en laissant le niveau album non modifié (choix perso). J'utilise donc le script de sputnick dans sa version non récursive.

#!/bin/bash

compact_folder()
{
folder2treat="$1"
maxdirs=$2
# si un glob est vide,
# "*" ne sera pas compté comme un élément :
shopt -s nullglob

#while read dir; do  #remove coment this line for recursive process
#    cd "$dir"       #remove coment this line for recursive process
cd "$folder2treat"   #coment -only- this line for recursive process

# on crée un tableau de répertoires
subdirs=( */ )

# si pas de répertoires dans le tableau on "skip"
[[ ${subdirs[@]} ]] || continue

# on itère sur les dossiers
for ((i=0; i<${#subdirs[@]}; i++)); do
   curdir="${subdirs[i]}"

   # on test si il reste un reste à la division de l'index/maxdirs (modulo) : multiple de maxdirs
   if ! ((i % maxdirs))
   then
      lastone="${subdirs[i+maxdirs-1]}"
      c=0
      until [[ -d "$lastone" ]]
      do
         lastone="${subdirs[i+maxdirs-1-c++]}"
      done
      # utilisa tion de "parameter expansion" de bash pour recuperer les premières lettres
      renameddir="${curdir:0:1}-${lastone:0:1}"
      mkdir -p "$renameddir"
   fi
   mv "$curdir" "$renameddir"
done
#done < <(find "$folder2treat" -mindepth 1 -depth -type d | sed 's:/[^/]\+$::' | sort -ru) #remove coment this line for recursive process
}

function folder_optimization()
{
# $1: folder to re-arrange
# $2: 0 process all folder levels
#     1 process all folderlevels except last one
#       (/genre/artist/album/song.mp3 > album folders are not processed)

master_folder="$1"
max_initial_depth=`find "$master_folder" -printf '%d\n' | sort -n  | tail -1`

depth=$(bc <<<"$max_initial_depth-$2-1")

while [ $depth -ge 0 ] #je pars du plus profond en remontant jusqu'au niveau maximum supérieur
do
   while read folder
   do
   #echo "$folder" under treatment, depth=$depth; sleep 0.01
      nb_folder=`find "$folder" -mindepth 1 -maxdepth 1 -type d ! -name ".*" | wc -l` # je compte son nombre de sous repertoires
      if [ $nb_folder -gt 8 ]
      then
         param=$(bc -l <<<"sqrt($nb_folder-1)+1")
         param=`echo "($param)/1" | bc` #partie entière
         #echo $param
         compact_folder "$folder" $param #et je compacte en utilisant la fonction
      fi
   done < <(find "$master_folder" -mindepth $depth -maxdepth $depth -type d ! -name ".*" | sort -n) # je liste les répertoires ayant des sous répertoires
   depth=$(( depth-1 )) # je remonte d'un cran
done
}

folder_optimization "$1" 1
exit