Auteur Topic: [HANDLEIDING] Snelkoppeling/Symlink naar meerdere shares  (gelezen 3314 keer)

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
[HANDLEIDING] Snelkoppeling/Symlink naar meerdere shares
« Gepost op: 07 oktober 2012, 17:53:00 »
Soms heb je wel eens de wens dat je maar 1 share hoeft aan te klikken en dan je vanuit die share andere shares kunt zien.

Zo heb ik bijvoorbeeld een map waar in al mn downloads binnen komen en uitgepakt worden.
Al deze tijdelijke mappen/bestanden hoef ik niet te zien als ik een film of serie wil kijken op mn media speler.

Om die reden heb ik een script die symlinks (snelkoppelingen) maakt naar de door mij opgegeven folders.
Ik heb een share genaamd Video en daar in staan twee folders.
Movies en Series.

Hier in staan symlinks naar de series en films die in een andere folder staan.

op die manier krijg ik alleen te zien wat ik wil zien.


hiervoor hoef je alleen de volgende waarden op te geven in onderstaand script (deze is alleen voor mn Series):
# de source directories even defineren. (Je kunt hier 1 dir opgeven maar ook meerdere indien gewenst. Dit doe je door een spatie achter elk pad te plaatsen.
DIRTOSCAN="/volume1/Downloads/series /volume1/uploads/jan/Series /volume1/uploads/karel/Series"

# Aangeven waar de Symlinks moeten komen.
DESTDIR="/volume1/video/Series"

Script (voor series):
#!/opt/bin/bash

# Zorg dat de datum en tijd goed leesbaar zijn
DATE=`date +"%b %e %T "`

# print een melding naar het /var/log/symlinklog logbestand en toon de melding op het scherm dat het script is gestart
printf "e[37m${DATE}e[34m#------------------------- RUNNING /opt/home/series-symlink-script.sh -------------------------#ne[37m" >> /var/log/symlinklog
printf "e[37m${DATE}e[34m#------------------------- RUNNING /opt/home/series-symlink-script.sh -------------------------#ne[37m"


# Indien je de symlinks wilt verwijderen: find /volume1/video/Series/ -maxdepth 1 -type l -exec rm {} ;


# Verander de field seperator voor de for loop anders zal hij mappen met spaties in de naam per wordt afhandelen in plaats van de map in zijn geheel
IFS="
"

# de source directories even defineren.
DIRTOSCAN="/volume1/Downloads/series /volume1/uploads/jan/Series /volume1/uploads/karel/Series"

# Aangeven waar de Symlinks moeten komen.
DESTDIR="/volume1/video/Series"

# Controleer of alle symlinks nog valide zijn
find ${DESTDIR} | while read -r LINK; do
        # Indien de symlink verwijst naar een folder die niet bestaat
        if ! test -e "$LINK"; then
                # verwijder deze dan
                rm "$LINK"
                        # En toon dit in /var/log/symlinklog en op het scherm
                        filedirectory=$(dirname $LINK)
                        filename=`echo $LINK | sed 's!.*/!!'`

                        printf "e[37m${DATE} --- e[36mSYMLINK e[31mREMOVED e[37m--- ${filedirectory}/e[31m${filename}e[31mn" >> /var/log/symlinklog
                        printf "e[37m${DATE} --- e[36mSYMLINK e[31mREMOVED e[37m--- ${filedirectory}/e[31m${filename}e[31mn"
        fi
done




# Loop door de sources directories.
for i in $DIRTOSCAN ; do

        # Loop door de gevonden files in 1 van de source directories en delete regel 1 van de output
        for file in `find $i -maxdepth 1 | sed '1d' ` ; do

        # strip het pad zodat er alleen een bestandsnaam overblijft
        file1=`echo $file | sed 's!.*/!!'`

                # als een symlink van het bestand nog NIET bestaat (-h = symlink)
                if [ ! -h `echo ${DESTDIR}/${file1}` ] ; then

                        # Maak de symlink
                        ln -s ${file}  ${DESTDIR}

                        printf "e[37m${DATE}e[37m --- e[36mSYMLINK e[32mCREATED e[37m--- ${DESTDIR}/e[32m${file1}ne[37m" >> /var/log/symlinklog
                        printf "e[37m${DATE}e[37m --- e[36mSYMLINK e[32mCREATED e[37m--- ${DESTDIR}/e[32m${file1}n"

                fi
                # Sluit beide loops.
                done
done

# Print een melding naar /var/log/symlinklog en naar het scherm dat script klaar is
printf "e[37m${DATE}e[34m#------------------------- END OF SCRIPT -------------------------#n" >> /var/log/symlinklog
printf "e[37m${DATE}e[34m#------------------------- END OF SCRIPT -------------------------#n"

Samba staat het standaard niet toe om symlinks te volgen.
Pas de samba config aan om dit te laten werken:
vi /usr/syno/etc/smb.conf

Voeg de volgende waarden toe aan [Global]
       follow symlinks = yes
        wide symlinks = yes
        unix extensions = no

Samba herstarten en de Symlinks worden gevolgd:
/usr/syno/etc/rc.d/S80samba.sh restart

Dit script staat bij mij in:
/opt/home/series-symlink-script.sh


Ik heb het script opgenomen in mn crontab zodat deze elke dag om 12 uur draait:
vi /etc/crontab

Voeg toe aan crontab:
0       *       *       *       *       root    /opt/home/series-symlink-script.sh

Restart Cron:
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start

Meer info over hoe cron werkt kun je terug lezen op de site van Wizjos!

Thats it!

elke avond om 00:00 worden er Symlinks gemaakt van al mijn folders waar series in staan.

Ditzelfde script draait ook voor mn films.
If UNIX isn\'t the solution, you\'ve got the wrong problem...

Is RAID hetzelfde als een backup?

Heeft het antwoord van een gebruiker je geholpen met het oplossen van je probleem?
Geef hem/haar een bedankje door op de bedankt knop te drukken!


 

Mac kan shares DS209 niet benaderen

Gestart door AnonymousBoard Mac OS X

Reacties: 7
Gelezen: 3634
Laatste bericht 20 september 2010, 20:33:33
door paulh
Backup van directories op de NAS naar een USB disk

Gestart door slingshotBoard Data replicator & overige backupsoftware

Reacties: 6
Gelezen: 3524
Laatste bericht 28 maart 2013, 21:28:15
door Björn
[Handleiding] Hibernation op de DS412+

Gestart door nomadBoard Algemeen

Reacties: 6
Gelezen: 7273
Laatste bericht 12 mei 2013, 12:44:59
door nomad
Muziek downloaden naar de ds audio app

Gestart door stevendemunterBoard Audio Station

Reacties: 1
Gelezen: 1600
Laatste bericht 22 juni 2013, 15:17:56
door Hofstede
Sinds update naar 4.3 geen email meer via externe apparaten, wel via mail-appl.

Gestart door Rudi999Board Synology DSM 5.1 en eerder

Reacties: 4
Gelezen: 2689
Laatste bericht 15 september 2013, 20:59:53
door Edwin_NL