Symlinks hoeven niet perse naar een bestand te verwijzen, maar mogen ook naar een folder linken.
Had je dus niet simpeler in /volume1/video (totaal slechts 3) symlinks kunnen plaatsen naar
de shares /volume1/Series, /volume1/Movies en /volume1/Cabaret?
Voor die drie shares kan je dan nog steeds de gewenste bevoegdheden individueel instellen.
Uiteraard moet je de genoemde wijzigingen in /usr/syno/etc/smb.conf nog steeds doorvoeren.
Plerry
Klopt, je kunt er voor kiezen om symlinks te maken naar alle drie deze shares.
Ik heb echter twee folders waar series in terecht komen.
Degene die sickbeard pakt en degene die ik zelf download op de pc en in een andere dir plaats.
Ok dit kan ik oplosen door zelf de bestanden gelijk in dezelfde dir te plaatsen.
Maar er zijn ook mensen die films naar mij uploaden in hun eigen folder op een share.
Als ik dan voor jou optie kies kom ik op 1 shared folder met daarin "video", "video jan", "video karel"etc.
En om dit op te lossen pak ik alle bestanden in elke folder en toon deze in 1 share.
Symlinks hoeven niet perse naar een bestand te verwijzen, maar mogen ook naar een folder linken.
Ik vond genoemde oplossing ook al erg complex en zou het zelf ook met symlinks oplossen.
Daarom heb ik ook een script gemaakt om het mezelf makkelijker temaken.
heb hem nog iets verfijnd.
Alser een film of serie bij komt, wordt er automatisch een symlink aangemaakt.
Wordt de oorspronkelijke folder echter verwijderd wijst de symlink naar een folder die niet meer bestaat.
Het script kijkt nu naar broken links en verwijderd deze.
#!/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/funny /volume1/uploads/jan /volume1/uploads/karel"
# Ga naar de target Directory
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"