银河麒麟高级服务器操作系统(通用)执行locate命令报错“locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db‘: 没有那个文件或目录“

银河麒麟高级服务器操作系统(通用)执行locate命令报错"locate: 无法执行 stat `/var/lib/mlocate/mlocate.db': 没有那个文件或目录"

一 问题现象

[root@localhost ~]# locate targetfile
locate: 无法执行 stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

二 系统环境

本文以银河麒麟高级服务器操作系统V10-SP2-X86版本做演示

############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Sword)

Kernel:
4.19.90-25.35.v2101.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP2) /(Sword)-x86_64-Build09/20210524
#################################################

三 原因

1.locate命令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。‌
2.updatedb命令是由mlocate-updatedb.timer服务控制,默认未运行。服务开启状态下默认每天更新一次。‌因此,‌如果系统中文件有新的变动,‌使用locate命令可能无法立即查询到最新的文件信息。‌为了避免这种情况,‌第一次使用locate命令之前,‌必须使用updatedb指令来创建或更新locate数据库,‌以确保查询结果的准确性。‌这样做可以确保locate命令能够利用最新的文件信息数据库进行查询,‌从而提高查询效率和准确性。

四 解决方法

4.1 执行updatedb,生成mlocate.db文件

[root@localhost ~]# updatedb
[root@localhost ~]# 
[root@localhost ~]# ls -l /var/lib/mlocate/mlocate.db 
-rw-r----- 1 root slocate 9177837  722 17:00 /var/lib/mlocate/mlocate.db

4.2 开启mlocate-updatedb.timer服务,确保每天更新一次mlocate.db文件

[root@localhost ~]# systemctl enable mlocate-updatedb.timer --now
Created symlink /etc/systemd/system/timers.target.wants/mlocate-updatedb.timer → /usr/lib/systemd/system/mlocate-updatedb.timer.
[root@localhost ~]# 
[root@localhost ~]# systemctl status mlocate-updatedb.timer 
● mlocate-updatedb.timer - Updates mlocate database every day
   Loaded: loaded (/usr/lib/systemd/system/mlocate-updatedb.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Mon 2024-07-22 17:02:08 CST; 11s ago
  Trigger: Tue 2024-07-23 00:00:00 CST; 6h left

722 17:02:08 localhost systemd[1]: Started Updates mlocate database every day.

五 验证

[root@localhost ~]# locate targetfile
/root/targetfile
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值