Buongiorno ho un server ubuntu sul quale vorrei poter fare :
1) montaggio in automatico di una pendrive usb che devo poter inserire, senza problemi, sia con pc acceso che spento;
2) che esegua un crontab schedulato per il salvataggio di parte dei dati presenti sul disco da utilizzare su PC Windows (o Mac);
3) che ogni pendrive venga riconosciuta e montata in automatico (pendrive A-Marco; pendrive B-Antonio e cosi via).
Si può fare ? Grazie per i suggerimenti che verranno.Michele
Buongiorno ho un server ubuntu sul quale vorrei poter fare :
1) montaggio in automatico di una pendrive usb che devo poter inserire, senza problemi, sia con pc acceso che spento;
3) che ogni pendrive venga riconosciuta e montata in automatico (pendrive A-Marco; pendrive B-Antonio e cosi via).
Si può fare ? Grazie per i suggerimenti che verranno.Michele
Per quanto riguarda il solo punto tre, se ti basta limitarti a montarla, non sarebbe diverso dal punto uno, come ti è già stato detto, se invece devi associare operazioni diverse a pen drive diverse, ad esempio usare una diversa icona per ogni diversa pen drive, potresti farlo, sviluppando una regoal user dev (udev). In pratica, riconoscendo VID e PID di ogni specifica pen drive che, di volta in volta inserirai nel bus usb, potrai associare una diversa operazione di avvio. Le regole udev sono, anche queste, ampiamente documentate su internet. Non dovresti avere difficoltà a trovare informazioni in merito.
E' possibile personalizzare le operazioni da fare a seguito del mount di una specifica periferica identificabile tramite queste variabili
Variable Description
UM_DEVICE file name of the device node
UM_MOUNTPOINT mountpoint
UM_FILESYSTEM filesystem type
UM_MOUNTOPTIONS mount options that have been passed to the mount command
UM_VENDOR vendor of the device (empty if unknown)
UM_MODEL model name of the device (empty if unknown)
crontab non ha molto senso con il resto che chiedi. O, meglio, non mi sembra adeguato.
crontab schedula cose su una linea temporale secondo periodi molto definiti a priori e ben precisi, tu invece vuoi fare cose (backup su pendrive) in occasione di eventi estemporanei (il montaggio della pendrive da parte di un umano che la attacca e la stacca senza una precisa cadenza temporale)
A meno che l'umano sia sempre sul pezzo e presente come un orologio a pendolo ad ogni chiamata di crontab
Edit: a meno di fare un crontab che, ogni tot, verifichi se ci sia una chiavetta montata e faccia partire il backup. Ma credo che ci siano alternative più smart su questo genere di trigger
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Ho praticato questa procedura in quanto nella versione 22.04 usbmount non viene più supportata nativamente e sembra che crei problemi di sicurezza... o almeno così ho letto da qualche parte.
E devo dire che funge il pendrive mi viene regolarmente montato come sdb1 ma non riesco ad accedervi per leggere i file ivi contenuti. Ribadisco, se non l'ho fatto prima, lavoro su una macchina virtuale vmWare e con webmin lato PC questo perchè successivamente voglio rendere visibile il pendrive in rete, tramite samba (share), qualcuno mi sa dire dove sbaglio?
Ultima modifica di mykia il martedì 7 febbraio 2023, 10:47, modificato 1 volta in totale.
Della guida che hai linkato quale parte hai seguito esattamente? Ho visto che ci sono diversi approcci distinti partendo dall'uso di fstab, passando per udev e per il tool autofs.
root@ubuntu:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1934784k,nr_inodes=483696,mode=755,inode64)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,noexec,relatime,size=398320k,mode=755,inode64)
/dev/sda2 on / type ext4 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,inode64)
cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=29763)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,nosuid,nodev,noexec,relatime)
tracefs on /sys/kernel/tracing type tracefs (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
none on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
/var/lib/snapd/snaps/core20_1778.snap on /snap/core20/1778 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/lxd_24061.snap on /snap/lxd/24061 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
/var/lib/snapd/snaps/snapd_17950.snap on /snap/snapd/17950 type squashfs (ro,nodev,relatime,errors=continue,x-gdu.hide)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run/snapd/ns type tmpfs (rw,nosuid,nodev,noexec,relatime,size=398320k,mode=755,inode64)
nsfs on /run/snapd/ns/lxd.mnt type nsfs (rw)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=398316k,nr_inodes=99579,mode=700,inode64)
/etc/auto_mount.usb on /media/auto_mount_usb type autofs (rw,relatime,fd=6,pgrp=1649,timeout=60,minproto=5,maxproto=5,indirect,pipe_ino=37533)
#!/bin/bash
fstype=$(/sbin/blkid -o value -s TYPE /dev/usbdisks/${1})
if [ "${fstype}" = "vfat" ] ; then
echo "-fstype=vfat,sync,uid=0,gid=plugdev,umask=007 :/dev/usbdisks/${key}"
exit 0
fi
exit 1
dove in luogo di vfat ho scritto ntfs tipo di partizione che mi restituisce blkid
per il resto i file rispecchiano fedelmente la guida (dal punto 4...)
proverò la procedura su una macchina reale appena ne avrò la disponibilità.
Ho prima stoppato il servizio di autofs: # service autofs stop
e poi ho dato il comando: # automount -f -v
ed ecco la risposta: Starting automounter version 5.1.8, master map /etc/auto.master
using kernel protocol version 5.05
lookup(file): bad map entry "["${fstype}"="ntfs"];then..." for key "if"
mounted indirect on /media/auto_mount_usb with timeout 60, freq 15 seconds
che conferma il mancato mount per la chiave specificata in if
Ho seguito questo post che prende le mosse dal post che mi ha indicato GjMan78 e devo dire che funge. Ho modificato la procedura descritta al punto n. 2 modificando /media in /media/usb creando la cartella usb con il comando mkdir (con periferica usb disinserita). Il risultato è che qualunque periferica inserita nella porta usb viene regolarmente riconosciuta e montata; il fatto è che ogni periferica connessa scalza la precedente essendo unico, penso, il punto di montaggio; per il momento è già un passo avanti. Con la procedura QUI descritta ogni periferica inserita aveva il suo spazio ma non veniva montate bisognerebbe integrare le due procedure....