• Opret dig
  • Glemt adgangskode

User account menu

  • Artikler
  • Forside
  • Forum
  • Nyheder
  • Log ind
Hjem
LinuxIN.dk

Snak med

Opret dig!

Af mrbrown79 | 10.03.2010 14:54

Dynamisk symbolsk link

Hjælp generelt
Er der nogen måde at lave et symbolsk link dynamisk afhængig af en environmentvariabel?

Jeg har flere arbejdsstationder, der mounter den samme netværkspartion med data. Men de mounter den ikke til samme mountpoint. Nogle filer på netværkspartionen er symbolske links til selvsamme partiion.

Dvs. hvis maskine A bruger mountpunktet /data og maskine B bruger punktet /mnt/data, så skal det symbolske link pege på /data/sti/til/fil på A, og til /mnt/data/sti/til/fil på B. Jeg ved godt at man kan linke relativt, men det er ikke en optimal løsning idet bibliokerne skal kunne flyttes rundt i strukturen uden at linket lige pludselig ikke peger på noget.

Jeg mangler noget a'la:
ln -s ${DATAMOUNT}/sti/til/fil linknavn.conf , hvor environment-variablen først fortolkes "runtime".

Kan man den slags?
  • Log ind eller opret dig for at tilføje kommentarer

Kommentarer7

# 1

16 år siden

Permalink

Indsendt af marlar den 10. marts 2010 kl. 15:28

Permalink

Re: Dynamisk symbolsk link

Tror du stort set selv har angivet løsningen. Mon ikke dette virker?

export DATAMOUNT=/mnt/data
ln -s $DATAMOUNT/sti/til/fil linknavn.conf

Jeg kan i øvrigt godt lide at "echo" når jeg eksperimenterer, så laver man ingen ulykker:

echo ln -s $DATAMOUNT/sti/til/fil linknavn.conf
  • Log ind eller opret dig for at tilføje kommentarer

# 2

16 år siden

Permalink

Indsendt af mrbrown79 den 10. marts 2010 kl. 15:42

In reply to Re: Dynamisk symbolsk link by marlar

Permalink

Tror du stort set selv har

Tror du stort set selv har angivet løsningen. Mon ikke dette virker?

export DATAMOUNT=/mnt/data
ln -s $DATAMOUNT/sti/til/fil linknavn.conf


Så har du enten misforstået mig eller også er dit system anderledes end mit.

Hvis jeg benytter ovenstående så kommer linket til at pege på hvad end DATAMOUNT er i det øjeblik linket laves - og IKKE, som hensigten var, det som DATAMOUNT er, i det øjeblik linket kaldes.

Problemet er at hvis jeg afvikler
ln -s $DATAMOUNT/sti/til/fil linknavn.conf på maskine A, så bliver linket rettet mod /data/sti/til/fil. Og den sti er ikke-eksisterende på maskine B (hvor den retteligt hedder /mnt/data/sti/til/fil

Giver det mening?
  • Log ind eller opret dig for at tilføje kommentarer

# 3

16 år siden

Permalink

Indsendt af marlar den 10. marts 2010 kl. 15:58

Permalink

Re: Dynamisk symbolsk link

Ja, så har jeg misforstået dig.

Men ændrer monteringspunktet sig efter linket er dannet? I dit eksempel har du jo to forskellige maskiner som godt nok peger forskellige steder her, men vel ikke efter linket er oprettet???

Eller også misforstår jeg dig stadig!
  • Log ind eller opret dig for at tilføje kommentarer

# 4

16 år siden

Permalink

Indsendt af mrbrown79 den 10. marts 2010 kl. 16:06

In reply to Re: Dynamisk symbolsk link by marlar

Permalink

Re: Re: Dynamisk symbolsk link

Linket ligger jo på den monterede netværksdisk og er dermed fælles for alle maskinerne. Monteringspunktet ændrer sig fra maskine til maskine. Hvis linket peger på /mnt/data, så giver det problemer på maskine A, hvis den peger på /data, så giver det problemer på maskine B.

Hvis jeg kunne lave linket med en miljøvariabel, som først evalueres når linket kaldes, så kunne jeg fikse det på den måde - og det er det jeg efterspørger. Hvis man bruger ln -s ${DATAMOUNT]/sti/til/fil, så afhænger det af hvad DATAMOUNT er på den maskine, som kommandoen eksekveres fra i eksekveringstidspunktet. Hvis dette ikke er identisk med DATAMOUNT på de andre maskiner går det galt.

Jeg kan altså ikke forklare det bedre...
  • Log ind eller opret dig for at tilføje kommentarer

# 5

16 år siden

Permalink

Indsendt af marlar den 10. marts 2010 kl. 16:11

Permalink

Re: Dynamisk symbolsk link

Jeg forstår det nu! Jeg havde ikke helt fanget den med at linket lå på netværksdrevet.

Min eneste idé er så at lade linket pege på et andet symbolsk link der ligger samme sted på alle maskine, fx /mnt/mainlink

Dette link kan så pege forskellige steder hen på hver maskine. Selvfølgelig går det i teorien ud over performance, men jeg tror ikke man kan mærke det overhovedet i praksis.
  • Log ind eller opret dig for at tilføje kommentarer

# 6

16 år siden

Permalink

Indsendt af mrbrown79 den 10. marts 2010 kl. 16:21

In reply to Re: Dynamisk symbolsk link by marlar

Permalink

Re: Re: Dynamisk symbolsk link

Ja, jeg havde selv overvejet den løsning, men jeg bryder mig ikke om at skulle vedligeholde dette bibliotek med fast placering på alle maskiner.

Det med miljøvariabel ville være optimalt, idet den i forvejen er en del af opsætningen. Hvis man ikke kan få det til at virke, så vælger jeg nok at lave linksene relative og så leve med at man skal bruge indersiden af hovedet inden man flytter rundt på bibliotekerne.

Performance er ligegyldig. Det er bare nogle initialiseringsfiler.
  • Log ind eller opret dig for at tilføje kommentarer

# 7

16 år siden

Permalink

Indsendt af marlar den 10. marts 2010 kl. 17:56

Permalink

Re: Dynamisk symbolsk link

Kan du så ikke bare oprette det fælles mainlink ved hjælp af miljøvariablen ved opstart? Så er der jo ikke noget vedligeholdelsesarbejde, idet der skal stå præcis det samme i din rc.local eller hvor du nu placerer koden....
  • Log ind eller opret dig for at tilføje kommentarer

Svar søges

Linux Fanpakke til LUG'er og foreninger 0
KDE Plasma 6.6 skrivebordsmiljø udgivet 0
GRUB 2.14 introducerer understøttelse af EROFS, forbedringer til Btrfs og LVM 0
KDE Plasma 6.6 tilføjer en funktion, som brugerne har spurgt efter i evigheder 0
Linux i København 12.01.2026: Open source i det offentlige 0

Seneste aktivitet

Lukker og slukker 8
BigLinux 6
youtube-tui: Nyd YouTube fra terminalen som en professionel 4
(U)hyggen breder sig 1
Det engang så elskede PCLinuxOS er tilbage - og det er stadig en fantastisk Windows erstatning 1
rsync og filsystem 6
Mousam er en detaljeret desktop vejrapp til Linux 1
Hjælp til Handbrake - ingen dk-undertekster 1
luckyBackup 2
GIMP 30
Pinegrow på Debian 13 ? 4
Openmediavault 1
E-mail blues 9
Driver til min scanner? 5
Printer Epson ET-2865 problem 16
Sudo 7
Thunderbird filvedligeholdelse 2
Debian 13.3.0 8
Linux Mint 22.3 - hvornår opdatere? 10
Canon-printer: Jeg savner "Ink-Toner Level"-meddelelse 10

© 2026 Linuxin og de respektive skribenter

Oprettet og drevet af nørder siden 2004 !