GNU/Linux >> Znalost Linux >  >> Ubuntu

Problém s Updatedb &Locate Command – soubory z externího pevného disku již nejsou po restartu indexovány?

Soubory z mého externího pevného disku již nejsou po restartu indexovány. Musím se znovu připojit a poté spustit

# updatedb

po každém restartu. Problém je aktualizovánb trvá několik minut pro mé externí pevné disky. Existuje nějaký způsob, jak mohu po restartu zachovat indexování pro své externí zařízení, aby příkaz locate mohl prohledávat mé externí zařízení?

UPRAVIT:Zde jsou moje specifikace na žádost:

$ cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"

# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/me/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=me)
/dev/sdb1 on /media/me type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdd1 on /media/Little Boy type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sde1 on /media/Fat Man type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

# on_ac_power; echo $?
255

Nejlepší odpověď

Soubory z vašeho externího pevného disku nejsou indexovány, protože updatedb je nakonfigurován tak, aby neindexoval nic pod /media , což je místo, kde se obvykle montuje externí úložiště. Tato konfigurace se nastavuje v souboru /etc/updatedb.conf . Konkrétně záznam /media v PRUNEPATHS řádek.

Několik nápadů, jak vytvořit updatedb pro indexování externího disku:

1. Připojte externí disk pod /mnt .

Pokud má být váš externí pevný disk připojen trvale pak doporučuji nakonfigurovat jej tak, aby byl připojen pod /mnt místo pod /media . To lze obvykle provést úpravou /etc/fstab . Chcete-li se o tom dozvědět, vyhledejte „fstab“. K úpravě /etc/fstab budete potřebovat práva sudo .

2. Vytvořte vyhrazenou databázi pro svůj externí pevný disk a na požádání ji dotazujte.

Následující příkaz vytvoří vyhrazenou databázi:

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

Tím se vytvoří databáze ve skrytém souboru .externalharddisk.db ve vašem domě. Nepotřebujete sudo za ten příkaz. Proveďte stejný příkaz znovu, aby byla databáze aktualizovaná. Opatrně:pokud tento příkaz spustíte, zatímco externí pevný disk není připojen, pak updatedb bude považovat soubory za smazané a vyprázdní databázi.

Pro automatizaci této úlohy můžete nastavit skript. Vyhledejte „cronjob“ a zjistěte, jak to udělat. Poznámka:Cronjob uživatele můžete nastavit jako uživatele. K nastavení uživatelského cronjob nepotřebujete práva sudo.

Související:Jak znovu povolit Unity WebApps v Ubuntu 13.04?

Následující příkaz provede dotaz na databázi:

locate -d ~/.externalharddisk.db searchterm

Můžete se také dotazovat na vyhrazenou databázi a výchozí databázi současně:

locate -d ~/.externalharddisk.db: searchterm

Dvojtečka na konci, za kterou není nic, znamená hledat také ve výchozí databázi.

Pro snadnější použití si můžete vytvořit alias. Vložte následující řádek do .bashrc :

alias locate-external='locate -d ~/.externalharddisk.db:'

Nyní můžete použít locate pro vyhledávání pouze výchozí databáze a locate-external pro vyhledávání také na vašem externím pevném disku.

3. Odeberte /media z PRUNEPATHS

Poznámka:Toto nedoporučuji ! Je to kvůli způsobu updatedb funguje. Pokud updatedb běží, když je externí pevný disk odstraněn, pak budou z databáze odstraněny všechny záznamy ukazující na externí pevný disk. Pokud updatedb běží, když je připojen externí pevný disk, pak budou znovu přidány položky směřující na externí pevný disk. Od updatedb běží pravidelně na pozadí, nikdy si nemůžete být jisti, zda jsou soubory z externího pevného disku aktuálně indexovány nebo ne.

Dále:pokud odeberete /media z PRUNEPATHS , bude toto chování platit také pro jakékoli jiné externí úložiště, které jste náhodou připojili během updatedb aktualizuje databázi.


Ubuntu
  1. Jak používat Btrfs s kompresí na externím pevném disku USB?

  2. Ubuntu se po instalaci nespustí z pevného disku?

  3. Jak automaticky připojit externí pevný disk?

  1. Zobrazí se zpráva „hdio_get_identity Failed“ při spouštění z externího pevného disku USB?

  2. Obnovení dat z pevného disku po náhodné přeinstalaci Ubuntu?

  3. Od názvu zařízení df k názvu fyzického disku (prodejce / typ)

  1. Jak změnit přidružení souborů pro soubory otevřené v Dolphin z příkazového řádku v Gnome?

  2. Možnost obnovy souborů z pevného disku plného Dd?

  3. Jak udržovat složku synchronizovanou s externím pevným diskem USB?