GNU/Linux >> Linux の 問題 >  >> Ubuntu

Updateb&Locate Commandの問題–外付けハードドライブからのファイルは再起動後にインデックスに登録されなくなりましたか?

再起動後、外付けハードドライブのファイルのインデックスが作成されなくなりました。再マウントしてから実行する必要があります

# updatedb

再起動するたびに。問題が更新されましたb外付けハードドライブの場合は数分かかります。再起動後に外部のインデックスを保持して、locateコマンドで外部を検索できるようにする方法はありますか?

編集:リクエストごとに私の仕様は次のとおりです:

$ 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

ベストアンサー

updatedbのため、外付けハードディスクのファイルはインデックスに登録されません /mediaの下に何もインデックスを付けないように構成されています 、これは通常、外部ストレージがマウントされる場所です。この構成は、ファイル/etc/updatedb.confで設定されます。 。具体的には、エントリ/media PRUNEPATHSで 行。

updatedbを作成する方法に関するいくつかのアイデア 外付けドライブにインデックスを付けるには:

1。 /mntに外付けドライブをマウントします 。

外付けハードディスクが永続的にマウントされることになっている場合 次に、/mntの下にマウントされるように構成することをお勧めします /mediaの下ではなく 。これは通常、/etc/fstabを編集することで実行できます。 。それについて学ぶために「fstab」を検索してください。 /etc/fstabを編集するには、sudo権限が必要です。 。

2。外付けハードディスク専用のデータベースを作成し、オンデマンドでクエリを実行します。

次のコマンドは、専用のデータベースを作成します。

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

これにより、隠しファイル.externalharddisk.dbにデータベースが作成されます。 あなたの家で。 sudoは必要ありません そのコマンドのために。同じコマンドを再度実行して、データベースを最新の状態に保ちます。注意:外付けハードディスクがマウントされていないときにそのコマンドを実行すると、updatedb ファイルが削除されたと見なし、データベースを空にします。

そのタスクを自動化するスクリプトを設定できます。その方法については、「cronjob」を検索してください。注:ユーザーcronjobをユーザーとして設定できます。ユーザーのcronジョブを設定するためにsudo権限は必要ありません。

関連:Ubuntu13.04でUnityWebAppsを再度有効にする方法は?

次のコマンドはデータベースにクエリを実行します:

locate -d ~/.externalharddisk.db searchterm

専用データベースとデフォルトデータベースを同時にクエリすることもできます:

locate -d ~/.externalharddisk.db: searchterm

最後のコロンの後に何も表示されないということは、デフォルトのデータベースでも検索することを意味します。

使いやすいエイリアスを作成できます。 .bashrcに次の行を入力します :

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

これで、locateを使用できます デフォルトのデータベースとlocate-externalのみを検索します 外付けハードディスクも検索します。

3。 /mediaを削除します PRUNEPATHSから

注:これはお勧めしません !これは、updatedbの方法によるものです 動作します。 updatedbの場合 外付けハードディスクが取り外されている間に実行されると、外付けハードディスクを指すすべてのエントリがデータベースから削除されます。 updatedbの場合 外付けハードディスクが接続されている間に実行され、外付けハードディスクを指すエントリが再度追加されます。 updatedb以降 はバックグラウンドで定期的に実行されているため、外付けハードディスクのファイルが現在インデックスに登録されているかどうかを確認することはできません。

さらに:/mediaを削除した場合 PRUNEPATHSから 、この動作は、updatedb中にマウントした他の外部ストレージにも適用されます。 データベースを更新しています。


Ubuntu
  1. 外付けUSBハードドライブで圧縮を使用してBtrfsを使用する方法は?

  2. GnomeのコマンドラインからDolphinで開いたファイルのファイルの関連付けを変更するにはどうすればよいですか?

  3. 外付けハードドライブをインストールする方法は?

  1. Ubuntu 12.04でアクセス許可の外付けハードドライブを変更する方法は?

  2. Fat32ハードディスクからデータを回復しますか?

  3. 外付けハードドライブを自動マウントする方法は?

  1. 外付けUSBハードドライブで起動すると「hdio_get_identityFailed」メッセージが表示されますか?

  2. Ddゼロで満たされたハードディスクからファイルを回復する可能性はありますか?

  3. 偶発的なUbuntuの再インストール後にハードディスクからデータを回復しますか?