Script pour Nas Synology - Oppo 103-105 de tri des fichiers

User avatar
b4ptist3
Posts: 1448
Joined: Sun Nov 25, 2012 12:07 am

Script pour Nas Synology - Oppo 103-105 de tri des fichiers

Post by b4ptist3 »

Comme ça m'a été demandé, je crée un petit tuto pas à pas pour mettre en place le script permettant d'afficher les dossiers et fichiers dans l'ordre à partir d'un Nas Synology.

J'ai préféré en faire un topic séparé plutôt que le noyer au milieu des 100+ pages du topic sur l'Oppo 103-105, qui va encore bien grossir. Les modos, si vous estimez que ce topic serait plus à sa place ailleurs, faites vous plaisir.

Entrons dans le vif du sujet. Pour ce tuto, je vais utiliser putty pour me connecter au Nas et faire les manips. Il est possible d'utiliser autre chose, la démarche et les commandes restent identiques une fois connecté.

Connectez vous au Nas en tant que root.

Dans un premier temps, nous allons créer le fichier script qui va modifier le fichier de config de Samba. Vous pouvez mettre ce script ou vous voulez, je vous conseille tout de même de le mettre dans un dossier différent de celui des fichiers d'initialisation de samba (ne vous inquiétez pas, on reparlera de ce dossier plus loin). En effet, le dossier contenant les fichiers d'initialisation est remis par défaut à chaque mise à jour du Nas. Tout ce qui est modifié dans ce dossier est donc à refaire. Autant en avoir le moins possible à refaire ;) .

Passons aux choses sérieuses. Nous allons créer le fichier du script.
Pour cela, mettez vous dans le dossier ou vous voulez créer le script en tapant cd chemindudossier (dans mon cas cd /volume1).
Tapez vi nomduscript.pl (dans mon cas vi scriptSortSamba2.pl)
Attention à ce que vous allez faire au clavier ensuite, vi étant un peu particulier :lol: .
Appuyez sur la touche i pour passer en mode insertion.
Collez le texte du script ou tapez le.

Code: Select all

#!/usr/bin/perl
#
# Modify the smb.conf file on the Synology disk station
#

# Location of the smb.conf and temp files
$smb_file = "/usr/syno/etc/smb.conf";
$tmp_file = "/tmp/mod_smb_cfg.$$";

# Below are the names of the shares and to the right
# are the config lines to introduce
%share_config = 
 (

     'music'              => [
                                   "vfs objects = dirsort"
                             ],
     'photo'            => [
                                   "vfs objects = dirsort"
                             ],
     'video'             => [
                                   "vfs objects = dirsort"
                             ]
 );


# Read the old config, make changes, writing to a temp file

open(SMBFILE, " $smb_file") || die "erreeur";
open(TMPFILE, "> $tmp_file")|| die "erreur";

while(<SMBFILE>)
{

    # Change configuration lines specified in "replacements"
    $tline = $line = $_;
        chomp($tline);
        $tline =~ s/^[\t ]*//;
    
            
    print TMPFILE;
        
    # Add configuration lines as specified in "share_config"
    
    $section_name = $_;
    chomp($section_name = $_);
    $section_name =~ s/^\[//;
    $section_name =~ s/\].*//;
    
    foreach $line ( @{ $share_config{"$section_name"} } )
    {
        print $line;
        print TMPFILE "\t$line\n";
        print $line;
    }
}

close(SMBFILE);
close(TMPFILE);

# Read the temp file in and replace the original config file
open(TMPFILE, "< $tmp_file") || exit;
open(SMBFILE, "> $smb_file") || exit;

while(<TMPFILE>)
{
    print SMBFILE;
}

close(TMPFILE);
close(SMBFILE);

# Get rid of the temp file
unlink($tmp_file); 
Ensuite appuyez sur Echap (pour sortir du mode insertion)
Puis tapez ZZ (en majuscule !) (pour quitter vi et sauvegardes les modifs dans le fichier)
Voilà, on est sorti de vi et le fichier script est créé.
ScriptSort.jpg
L'encadré rouge, ce sont les dossiers par défaut du nas. Si vous en avez d'autres à trier, il suffit de rajouter le nom du dossier et la ligne qui va avec, à la suite de video, avant les caractères );
Par exemple si on a un dossier dossier à trier (oui je sais, original comme nom :rofl: ) il suffira de rajouter la ligne comme les autres 'dossier' => ["vfs objects = dirsort"]
Pensez aussi dans le cas d'un rajout, à mettre la virgule après le ] de la ligne concernant le dossier video

Maintenant que le script est fait, passons à la deuxième étape, qui consiste à créer le fichier d'initialisation qui va permettre de lancer le script au démarrage du Nas.

Les fichiers permettant d'initialiser le serveur Samba se trouvent dans le dossier /usr/syno/etc/rc.d. On va donc aller se placer dans ce dossier. Pour cela tapez cd /usr/syno/etc/rc.d
Ensuite si l'on tape ls, vous devriez obtenir quelque chose comme ça (sans le rectangle rouge, c'est moi qui l'ai rajouté ça):
DossierInitSamba.png
Le fichier nous intéressant est le fichier S80samba.sh. C'est à partir de ce fichier que se lance le serveur samba au démarrage. Le but du jeu va donc être de créer un fichier qui va se situer avant (dans mon cas j'ai crée S80alt_samba.sh) qui sera lancé en premier. Il va lancer le script modifiant le fichier config samba pour que le serveur s'initialise ensuite avec le fichier config modifié comme on le souhaite.

Pour cela, tapez vi nomdufichier.sh (dans mon exemple, j'ai tapé vi S80alt_samba.sh (S majuscule))

Faites encore attention à ce que vous allez taper au clavier, vi étant toujours le même lol.

Appuyez sur la touche i pour passer en mode insertion.
Rentrez la première ligne #!/bin/sh
La deuxième ligne est un petit peu plus complexe, mais pas de beaucoup, rassurez vous. Il s'agit d'indiquer le chemin du script à lancer.
Entrez donc perl cheminduscript (dans mon cas perl /volume1/scriptSortSamba2.pl).
Appuyez ensuite sur Echap
Puis ZZ (toujours en maj !)

Voilà, normalement il ne devrait pas y avoir de soucis de droit d'exécution, ça devrait fonctionner. Si toutefois ça ne marche pas, n'hésitez pas à me contacter par mp. Si il y a des passages qui ne sont pas clairs, ou que ça manque de captures ou n'importe quoi d'autre, n'hésitez pas à m'en faire part.
You do not have the required permissions to view the files attached to this post.
Sony 65XD93 - Oppo Bdp 105Eu - Panasonic DMP-UB900 Anthem MRX 510 - Teac AI-2000 S - Kef Q700 - Kef Q600c - Kef iq30 - Sunfire Sds 10
The difference between try and Triumph is a little 'umph
Fresh
Posts: 215
Joined: Mon Sep 17, 2012 8:26 pm

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Fresh »

Merci Mr d'avoir répondu à cette demande ;)
J'ai fais une boulette hier sur les chemins d'accès, je reprends ça ce soir plus au calme.
Encore merci
Plasma Panasonic 50VT50E - Ampli Pioneer VSX 921K - Platine BR Oppo BDP-103E - PS3 - PCH A400 - Enceintes Front Confluences Solstice V2 - Enceinte Centrale Focal Chorus CC700V - Enceintes Surround Focal SIB Jet V1 - Subwoofer SVS PB-1000
User avatar
Olivier
Site Admin
Posts: 2340
Joined: Tue Apr 03, 2012 8:36 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Olivier »

Respect ! :clap:
Ampli HC Cambridge 551R, Ampli Hifi Cambridge 851A (en bypass en utilisation HC avec le 551R), Enceintes Triangle Antal 202, Centrale Sextan, Comètes 202, Caisson Sunfire SDS-12, Videoprojecteur Sanyo PLV Z700, Oppo 105EU, Xbox 360 slim
User avatar
Olbi_One
Posts: 1340
Joined: Wed Jan 09, 2013 9:35 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Olbi_One »

Bonsoir,
si votre version DSM est au moins la 4.2, vous pouvez faire juste la modification dans le fichier smb.conf:

donc pour les dummies: dans l'interface DSM/Panneau de Configuration/ Terminal : activer SSH.

télécharger Putty, puis connecter vous à votre Synology en tant que : "root" avec le mot de passe de l'utilisateur :admin

dans la console taper: vi /usr/syno/etc/smb.conf

mettez vous en "insertion" avec i (sur votre clavier)
Déplacez vous avec les flèches de votre clavier, utiliser "Entrer" en fin de ligne pour faire une nouvelle ligne.
Dans la première section ajouter : vfs objects = dirsort
ce qui donne dans mon cas:
"[global]
printcap name=cups
winbind enum groups=yes
security=user
local master=no
realm=*
passdb backend=smbpasswd
printing=cups
winbind enum users=yes
load printers=yes
workgroup=WORKGROUP
vfs objects = dirsort
[music]"

Appuyer sur Esc (touche Echap du clavier), puis taper: ":wq!" pour sauvegarder et quitter vi.

Pour appliquer la modification, redémarrer le service samba, avec la commande :
DiskStation> /usr/syno/etc/rc.d/S80samba.sh restart

Enfin, exit pour quitter votre cession ssh.

Vérifier sur votre platine préférée, le résultat !!!

N.B.: j'ai rédigé en 5mn, donc si j'ai oublié des choses pour les personnes qui ne pratiquent pas Unix tous les jours, un petit MP et je ferai la modif.

Enjoy :biglol:
User avatar
b4ptist3
Posts: 1448
Joined: Sun Nov 25, 2012 12:07 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by b4ptist3 »

On m'en a parlé mais j'ai pas eu le temps de vérifier par moi même. Le fichier conf n'est plus remis par défaut à chaque redémarrage c'est ça ?
Sony 65XD93 - Oppo Bdp 105Eu - Panasonic DMP-UB900 Anthem MRX 510 - Teac AI-2000 S - Kef Q700 - Kef Q600c - Kef iq30 - Sunfire Sds 10
The difference between try and Triumph is a little 'umph
LePousson
Posts: 1622
Joined: Sun Oct 14, 2012 9:31 pm

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by LePousson »

Si, il est remis à jour à chaque reboot, et toute modif est perdue... Et meme pire, a chaque maj de DSM, il faut refaire tout ca ...

A priori il suffirait de modifier un des scripts précédents (jusqu'à S79... Pas plus !!) et ajouter : perl chemin_d'acces_au_script/script.pl

J'ai aussi ajouté une tache cron pour que la modif soit faite et samba redémarré chaque nuit à 5h du matin ...

C'est hallucinant de devoir s'emmerder de cette manière avec un lecteur à 700 ou même a 1400€, alors qu'une telle fonction est dispo et marche sur n'importe quel lecteur multimedia, même le pire de tous ...

LePousson
Ma salle HC : DLA-X30, Triangle Ex+SR800V, SPL800U, TX-NR5009, VU+ Ultimo, BDP-105EU (ISO MRMZ), Zappiti Player, FreeboxTV
Ma chambre HC : UE65JU7500, Focal Dome, AVR-X2300W, Cube Canalsat, UDP-203EU (Tweaked by Coris), LB TV 4, Shield
User avatar
Olbi_One
Posts: 1340
Joined: Wed Jan 09, 2013 9:35 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Olbi_One »

C'est clair que je n'ai pas le problème avec mon Mede8er :)
mais j'ai pas la même qualité de lecture...
Bon et moi qui croyait être tranquille, ben je me suis trouvé un autre projet... en plus de ceux du boulot :sweat:
User avatar
Olivier
Site Admin
Posts: 2340
Joined: Tue Apr 03, 2012 8:36 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Olivier »

Bravo b4ptist3 et surtout merci !
Ampli HC Cambridge 551R, Ampli Hifi Cambridge 851A (en bypass en utilisation HC avec le 551R), Enceintes Triangle Antal 202, Centrale Sextan, Comètes 202, Caisson Sunfire SDS-12, Videoprojecteur Sanyo PLV Z700, Oppo 105EU, Xbox 360 slim
User avatar
b4ptist3
Posts: 1448
Joined: Sun Nov 25, 2012 12:07 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by b4ptist3 »

Olivier wrote:Bravo b4ptist3 et surtout merci !
De rien :) Puis faut dire j'ai juste récupérer le script et enlevé les parties qui ne nous concernaient pas. Le gros du boulot a été la rédaction :lol:

En fait on m'avait parlé des modifs qui étaient restées après une coupure de courant. Donc je me demandais si les modifs étaient peut être devenues permanentes avec une maj du DSM. Mais si ce n'est pas le cas je ne vois pas trop l'intérêt de faire la modif à la main. Entre un script qui automatise la chose et se taper la modif à chaque démarrage du Nas, mon choix est vite fait !
Sony 65XD93 - Oppo Bdp 105Eu - Panasonic DMP-UB900 Anthem MRX 510 - Teac AI-2000 S - Kef Q700 - Kef Q600c - Kef iq30 - Sunfire Sds 10
The difference between try and Triumph is a little 'umph
User avatar
Olbi_One
Posts: 1340
Joined: Wed Jan 09, 2013 9:35 am

Re: Script pour Nas Synology - Oppo 103-105 de tri des fichi

Post by Olbi_One »

c'est clair que dans ce cas le script a sa raison d'être
Post Reply