GNU/Linux >> Linux Esercitazione >  >> Linux

Ci sono degli svantaggi nell'usare Mount-bind come sostituto dei collegamenti simbolici?

I collegamenti simbolici hanno limitazioni nel modo in cui funzionano come ls , mv e cp può operare su di essi perché a differenza dei comandi avviati dalla shell come cd , queste funzioni non hanno informazioni su come l'utente ha effettuato l'accesso alla directory rispetto al percorso logico (vedi post relativo). Sembra di usare mount --bind l'opzione invece può aggirare questo problema, offrendo una maggiore funzionalità e compatibilità con samba e altri file server perché la directory montata avrà quindi due percorsi fisici indipendenti, invece di un collegamento.

Vorrei sostituire tutti i miei collegamenti simbolici con riferimenti utilizzando mount --bind opzione ma questo significherebbe montare oltre 150 punti in fstab. Ci sono problemi di prestazioni che potrebbero derivare da questo o da altri inconvenienti che dovrei considerare?

Risposta accettata:

Con mount --bind , un albero di directory esiste in due (o più) posizioni nella gerarchia di directory. Ciò può causare una serie di problemi. I backup e altre copie di file sceglieranno tutte le copie. Diventa difficile specificare che vuoi copiare un filesystem:finirai per copiare due volte i file montati su bind. Ricerche con find , grep -r , find , ecc., attraverserà tutte le copie e così via.

Non otterrai alcuna "maggiore funzionalità e compatibilità" con i mount bind. Assomigliano a qualsiasi altra directory, cosa che il più delle volte non è un comportamento desiderabile. Ad esempio, Samba espone i collegamenti simbolici come directory per impostazione predefinita; non c'è nulla da guadagnare con l'utilizzo di un montaggio bind. D'altra parte, i mount di bind possono essere utili per esporre le gerarchie di directory su NFS.

Non avrai problemi di prestazioni con i mount bind. Quello che avrai sono mal di testa da amministrazione. I mount di binding hanno i loro usi, come rendere accessibile un albero di directory da un chroot o esporre una directory nascosta da un punto di montaggio (questo è solitamente un uso transitorio mentre la struttura di una directory viene rimodellata). Non usarli se non ne hai bisogno.

Solo root può manipolare i mount di binding. Non possono essere spostati con mezzi ordinari; bloccano la loro posizione e le directory degli antenati.

In generale, se si passa un collegamento simbolico a un comando, il comando agisce sul collegamento stesso se opera su file e sulla destinazione del collegamento se opera sul contenuto di file. Questo vale anche per le directory. Di solito è la cosa giusta. Alcuni comandi hanno opzioni per trattare i collegamenti simbolici in modo diverso, ad esempio ls -L , cp -d , rsync -l . Qualunque cosa tu stia cercando di fare, è molto più probabile che i link simbolici siano lo strumento giusto, piuttosto che i binding mount siano lo strumento giusto.

Correlati:Linux – Ubuntu Server, imposta il carattere del terminale su un carattere ttf personalizzato?
Linux
  1. Come applicare una patch -p0 da qualsiasi directory di lavoro?

  2. Ci sono differenze tra il montaggio di un filesystem /proc all'interno di un Chroot rispetto al montaggio dall'esterno?

  3. Esistono codici di stato di uscita standard in Linux?

  4. Esistono API C per estrarre il nome del file di base dal suo percorso completo in Linux?

  5. Per mostrare il percorso di origine del montaggio del bind per il montaggio dopo la v2.25.2

Esistono ide di script di shell ben noti e ben utilizzati per Un*x?

C'è un modo per verificare se ci sono collegamenti simbolici che puntano a una directory?

Esiste un equivalente WinSCP per Linux?

Esiste un comando per tornare indietro di un numero di passaggi in una directory, senza utilizzare cd?

Ci sono alternative all'uso di `udev`?

Esistono filesystem per i quali `ln -d` ha successo?