Auteur Topic: [OPGELOST] Meerdere shares weergever in 1 map  (gelezen 3903 keer)

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
[OPGELOST] Meerdere shares weergever in 1 map
« Gepost op: 28 mei 2012, 18:40:20 »
Ik heb op dit moment verschillende shares voor mijn video content.

(Voorbeeld)
/volume1/Series
/volume1/Movies
/volume1/Cabaret

Nu wil ik de content van alle drie deze shares/mappen laten zien in één map.

/volume1/video

Dit kan ik doen door in /volume1/video/ een shell script te plaatsen die softlinks maakt naar de mappen in die folders.

for file in ../Series/* ; do ln -s "$file" ; done
for file in ../Movies/* ; do ln -s "$file" ; done
for file in ../Cabaret/* ; do ln -s "$file" ; done

Hiermee zal alle content uit alle drie de folders zichtbaar zijn in /volume1/video/

Het nadeel hiervan is dat je dit script elke keer moet draaien indien de content in 1 van die drie folders is gewijzigd om de link te creeren.

Daarbij komend zou ik alle hardlinks eerst moeten verwijderen voordat het script nogmaals wordt gedraaid omdat er anders een hoop foutmeldingen komen met de melding dat de link al bestaat.

Of hier moet eerst een controle aan vooraf gaan of de hardlinks al bestaan of niet.

Nu heb ik twee vraagjes.

1 Kan dit ook op een andere/betere manier?
2 Indien deze er niet is, kan iemand mij vertellen hoe ik een controle uit moet voeren voor dit script? (Dus dat het commando "for file in ../Series/* ; do ln -s "$file" ; done" alleen wordt gedraaid indien de hardlink nog niet bestaat? (om zo vervuiling in de logging te voorkomen)

Alvast bedankt!
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!

Martijn85

  • Gast
Re: Meerdere shares weergever in 1 map
« Reactie #1 Gepost op: 28 mei 2012, 21:07:45 »
Waarom maak je deze 3 (voorbeeld) mappen niet gewoon aan in de map /volume1/video

Op deze manier dus:

/volume1/video/Series
/volume1/video/Movies
/volume1/video/Cabaret

Hoef je geen scripts te maken en je kunt ze nog gewoon via de share bereiken.

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: Meerdere shares weergever in 1 map
« Reactie #2 Gepost op: 28 mei 2012, 21:26:31 »
Citaat van: "Martijn85"
Waarom maak je deze 3 (voorbeeld) mappen niet gewoon aan in de map /volume1/video

Op deze manier dus:

/volume1/video/Series
/volume1/video/Movies
/volume1/video/Cabaret

Hoef je geen scripts te maken en je kunt ze nog gewoon via de share bereiken.


Het was slechts een voorbeeld.

Als je alles in /volume1/video/ plaatst kan iedereen er bij.
Maar ik wil dat klaasje wel bij /volume1/Series mag komen maar niet bij /volume1/Movies of /volume1/camera_films_van_de_kinderen

En Pietje mag wel bij /volume1/camera_films_van_de_kinderen maar niet bij /volume1/Series en /volume1/Movies

Helaas kun je de rechten per user slechts instellen op Share niveau in user/group management.
Daarnaast hoeven anderen niet te weten wat ik allemaal wel of niet onder /volume1/video heb staan.


En ik... ik wil graag overal bij kunnen.
en dat kan ook, maar nu moet ik elke keer handmatig de share opgeven.

Ik doe dat liever door een share voor mezelf aan te maken die alle folders in 1 keer laat zien in 1 overzicht.

Het heeft dus puur met gemak en privacy temaken.
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!

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: Meerdere shares weergever in 1 map
« Reactie #3 Gepost op: 28 mei 2012, 22:39:20 »
Opgelost


#!/opt/bin/bash

#Verander de field seperator voor de for loop
IFS="
"

# de source directories even defineren.
DIRTOSCAN="/volume1/Series /volume1/Movies /volume1/Cabaret"

# Ga naar de target Directory
DESTDIR="/volume1/video"

#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}
echo --- SYMLINK CREATED --- ${DESTDIR}/${file1}

fi
# Sluit beide loops.
done
done

Alle Mappen zullen nu te zien zijn in /volume1/video

NOTE:
Mocht je dit script gaan gebruiken dien je in /usr/syno/etc/smb.conf onder [Global] de volgende waarden toe te voegen:
       follow symlinks = yes
        wide symlinks = yes
        unix extensions = no
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!

Offline Plerry

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 17
  • -Ontvangen: 289
  • Berichten: 1.504
  • Tom Poes, verzin een list ...
Re: Meerdere shares weergever in 1 map
« Reactie #4 Gepost op: 29 mei 2012, 11:26:27 »
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
There are only 10 kinds of people: ... those who understand binary, and those who don't.

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 771
  • Berichten: 5.090
Re: Meerdere shares weergever in 1 map
« Reactie #5 Gepost op: 29 mei 2012, 11:50:54 »
Citaat van: "Plerry"
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.
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Offline raptile

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 66
  • -Ontvangen: 131
  • Berichten: 1.263
Re: Meerdere shares weergever in 1 map
« Reactie #6 Gepost op: 29 mei 2012, 15:17:44 »
Citaat van: "Plerry"
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.



Citaat van: "Matr1x"
Citaat van: "Plerry"
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"
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!


 

VERPLAATST: Meerdere schijven in Filestation

Gestart door BirdyBoard Synology DSM 6.0

Reacties: 0
Gelezen: 1023
Laatste bericht 07 januari 2017, 12:20:28
door Birdy
Meerdere foto's tegelijk verplaatsen lukt niet

Gestart door RhodezBoard Photo Station / Photos

Reacties: 1
Gelezen: 1126
Laatste bericht 24 september 2017, 11:36:55
door Ben(V)
[Opgelost] SABNZB en spotplanet

Gestart door NazgulBoard SABnzbd (usenet)

Reacties: 15
Gelezen: 9623
Laatste bericht 26 oktober 2012, 09:13:56
door sdirkx
Mac kan shares DS209 niet benaderen

Gestart door AnonymousBoard Mac OS X

Reacties: 7
Gelezen: 3619
Laatste bericht 20 september 2010, 20:33:33
door paulh
[Opgelost] Update: Surveillance Station 8.1.4-5498. SS 8.2?

Gestart door m4v3r1ckBoard Surveillance Station

Reacties: 2
Gelezen: 2663
Laatste bericht 13 april 2018, 12:04:02
door m4v3r1ck