perl - tools - ubuntu inotifywait install




Come posso sapere se un file si trova su un filesystem remoto con Perl? (4)

C'è un modo rapido e sporco per dire programmaticamente, nello script di shell o in Perl, se un percorso si trova su un filesystem remoto (nfs o simile) o locale? O è l'unico modo per fare questo per analizzare / etc / fstab e controllare il tipo di filesystem?


Puoi usare "df -T" per ottenere il tipo di filesystem per la directory, o usare l'opzione -t per limitare il reporting a tipi specifici (come nfs) e se ritorna con "nessun file system processato", allora non è uno di quelli che stai cercando.

df -T $dir | tail -1 | awk '{print $2;}'

Se si utilizza df su una directory per ottenere informazioni solo sul dispositivo in cui risiede, ad es. Per la directory corrente:

df .

Quindi, puoi solo analizzare l'output, ad es

df . | tail -1 | awk '{print $1}'

per ottenere il nome del dispositivo.


stat -f -c %T <filename> dovrebbe fare ciò che vuoi. Potresti anche volere -l


Ho testato quanto segue su solaris7,8,9 e 10 e sembra affidabile

/bin/df -g <filename> | tail -2 | head -1 | awk '{print $1}'

Dovresti darti il ​​tipo fs piuttosto che cercare di trovare un "host: path" nel tuo punto di mount.





nfs