在 ubuntu 服务器上,我正在尝试使用 Java 从压缩文件格式中解压缩 300M 图像文件。
我的解包速率是 0.5Mbytes/sec,糟糕透顶(以这个速率解压 1.5TB 需要 34 天)。
我试图找出原因,我注意到的唯一奇怪之处是,在我进行解包过程时,updatedb.mlocate 始终有效。我想关闭它以查看它是否妨碍了它,但我不太了解它是什么。
最佳
top - 05:16:52 up 1 day, 5:15, 3 users, load average: 2.00, 2.01, 1.83
Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.8%sy, 0.0%ni, 8.4%id, 90.2%wa, 0.0%hi, 0.0%si, 0.2%st
Mem: 1737420k total, 1722680k used, 14740k free, 1241260k buffers
Swap: 917500k total, 160k used, 917340k free, 165448k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND …Run Code Online (Sandbox Code Playgroud) 重新启动后,我的外部硬盘驱动器中的文件不再编入索引。我必须重新安装然后运行
# updatedb
Run Code Online (Sandbox Code Playgroud)
每次重启后。问题是我的外置硬盘需要几分钟的时间来更新。有什么办法可以在重新启动后保留我的外部设备的索引,以便 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 …Run Code Online (Sandbox Code Playgroud) 如何编辑update.confat/etc/update.conf以在 Ubuntu 上每天运行?这将使我能够使用locate最新的数据库。
我读了这个:
默认设置,updatedb,它已经在/etc/cron.daily 中,它的名字是slocate.cron 如果你想在启动时运行updatedb,你可以在文件/etc/rc.d/rc.local 中添加一行updatebd .
在 FC4 中,您必须编辑文件 /etc/updatedb.conf 并设置 DAILY_UPDATE=yes。
但这适用于 Fedora。
我一直在阅读有关 locate 命令的信息,我使用的教程说 /var/log/updatedb 是 updatedb 所在的位置。它在 ubuntu (xubuntu) 上不存在,而且原则上它甚至似乎无法定位(具有讽刺意味的是)。这就是我为尝试找到它所做的:
[HOST]:~$ sudo find / -name updatedb
[sudo] password for [USERNAME]:
find: ‘/run/user/1000/gvfs’: Permission denied
/etc/alternatives/updatedb
/usr/bin/updatedb
Run Code Online (Sandbox Code Playgroud)
如果我查看 /usr/bin 和 long-list updatedb,它会链接到 /etc/alternatives/updatedb。
如果我查看 /etc/alternatives
[HOST]:/usr/bin$ cd /etc/alternatives
[HOST]:/etc/alternatives$ ls -l updatedb
lrwxrwxrwx 1 root root 25 Jul 15 02:35 updatedb -> /usr/bin/updatedb.mlocate
Run Code Online (Sandbox Code Playgroud)
你得到了上面指向 /usr/bin/updatedb.mlocate 的符号链接
[HOST]:/usr/bin$ ls -l updatedb.mlocate
-rwxr-xr-x 1 root root 43768 Nov 18 2014 updatedb.mlocate
[HOST]:/usr/bin$ file updatedb.mlocate
updatedb.mlocate: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), …Run Code Online (Sandbox Code Playgroud) 我希望每天启动一个特殊命令,但不想将它放在 /etc/cron.d/ 中,因为它是特定于用户的用户!
pg@pipoTower: ~$ crontab -l
# m h dom mon dow command
0 0 * * * updatedb -l 0 -o ~/.externalharddisk.db -U /var/autofs/removable/usbData
Run Code Online (Sandbox Code Playgroud)
将crontab -e其放在文件中的命令/var/spool/cron/crontabs/userName
但不知道为什么它不被 anacron 调用....
usr@Tower: ~/$ cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
Run Code Online (Sandbox Code Playgroud) 使用索引外部驱动器后,updatedb -l 0 -o db_file -U source_directory我想知道是否已经有像 Nautilus 这样的(GUI)浏览器可以离线浏览索引文件。
注意:locate -d DB .给出完整的文件列表。
另外:DB 是什么格式——sqlite?
联机帮助页指出,默认情况下,updatedb 包括整个文件系统。我有两个 USB 连接驱动器,未包含在 updateb 中。我可以为每个驱动器创建自己的数据库文件,但想知道是否可以强制 updateb 包含它们?
我意识到当locate 没有找到我在附加驱动器之一上存在的新文件时,情况就是如此。执行 sudo updateb 没有效果。
昨天,在尝试从我的文件系统中卸载我们的(安装davfs2 的)工作 webdav 服务器时,我得到了device is busy.
跑了sudo lsof | grep /mountpoint/of/davfs,才发现罪魁祸首是updatedb。运行man updatedb显示这是一个运行命令来更新 mlocate 的数据库,很可能是由 cron 调用的。
虽然我有时会使用 locate,但我不需要它来包含我们工作服务器上的所有文件(我们有其他搜索工具),而且我绝对不希望这会干扰我卸载文件系统。
因此,在 Linux Mint 上多次使用locate命令后,我遇到了每个查询都在 /timeshift/ 目录中返回一行又一行结果的问题 - Linux Mint 使用该目录作为操作系统保存点。
如果我使用,比如说,locate anaconda activate.sh我可能会得到的是:
/home/user/.anaconda3/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts
/conda-activate.sh
/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/activate.d/activate.sh
/home/user/.anaconda3/pkgs/spyder-5.1.5-py39h06a4308_1/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-01-09_15-00-01/localhost/home/user/.anaconda3/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-01-09_15-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/activate.d/activate.sh
/timeshift/snapshots/2023-01-09_15-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/deactivate.d/deactivate.sh
/timeshift/snapshots/2023-01-09_15-00-01/localhost/home/user/.anaconda3/pkgs/spyder-5.1.5-py39h06a4308_1/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-02-10_04-00-01/localhost/home/user/.anaconda3/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-02-10_04-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/activate.d/activate.sh
/timeshift/snapshots/2023-02-14_20-00-01/localhost/home/user/.anaconda3/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-02-14_20-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/activate.d/activate.sh
/timeshift/snapshots/2023-02-14_20-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/deactivate.d/deactivate.sh
/timeshift/snapshots/2023-02-14_20-00-01/localhost/home/user/.anaconda3/pkgs/spyder-5.1.5-py39h06a4308_1/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-02-15_21-00-01/localhost/home/user/.anaconda3/lib/python3.9/site-packages/spyder/plugins/ipythonconsole/scripts/conda-activate.sh
/timeshift/snapshots/2023-02-15_21-00-01/localhost/home/user/.anaconda3/pkgs/conda-4.12.0-py39h06a4308_0/info/test/tests/test-recipes/activate_deactivate_package/src/etc/conda/activate.d/activate.sh
Run Code Online (Sandbox Code Playgroud)
只有前三个结果是相关的,那么如何排除目录呢?