路由器运行包含 BusyBox 的固件,除了闪存之外,该设备还具有辅助存储器。该 USB 记忆棒安装在 和/media/Main
处/opt
:
# mount | grep sda
/dev/sda1 on /media/Main type ext4 (rw,noatime,data=ordered)
/dev/sda1 on /opt type ext4 (rw,noatime,data=ordered)
定位数据库中的重复项
问题是updatedb
同时定位索引/media
和/opt
。我希望在/opt/var/locatedb
不更改驱动器安装的情况下永久删除这些重复项。我确实希望使用该updatedb
命令而不从 cron 和 shell 向该命令添加选项。可能alias
是一个选择。虽然我第一次搜索“定位数据库排除”确实返回了建议对 Arch Linux 使用“/etc/updatedb.conf”的博客文章。
更新数据库配置文件
第一次尝试是创建一个/opt/etc/updatedb.conf
包含以下内容的文件:
# directories to execlude from the locate database
PRUNEPATHS="/media /mnt /tmp /var/tmp /var/cache /var/lock /var/run /var/spool"
export PRUNEPATHS
# filesystems to exclude from the locate database:
PRUNEFS="afs auto autofs binfmt_misc cifs coda configfs cramfs debugfs devpts devtmpfs ftpfs iso9660 mqueue ncpfs
nfs nfs4 proc ramfs securityfs shfs smbfs sshfs sysfs tmpfs udf usbfs vboxsf"
export PRUNEFS
这还不足以让我们updatedb
使用所需的配置。接下来是阅读 GNU 定位文档。GNU updateb 文档状态:
通常,操作系统有一个 shell 脚本,用于“导出”变量定义的配置,并使用另一个 shell 脚本,将配置文件“获取”到环境中,然后在环境中执行 updateb。
我的嵌入式 Linux 是否导出和源配置变量?
此嵌入式 Linux 操作系统可能具有 GNU 建议的 shell 脚本,用于导出配置变量并将它们返回到环境中。
我如何验证该操作系统的导出和来源?
当操作系统不这样做时,如何在这里正确导出和获取配置变量?
环境
- GNU
locate
是通过opkg
此外部存储介质安装的 - BusyBox v1.24.1 根据
/bin/sh --version
- 定位(GNU findutils)4.6.0
- 外壳是
-sh
根据echo $0
/opt/home/admin/.ash_history
存在
$ cat /opt/etc/profile
#!/bin/sh
export PATH='/opt/usr/sbin:/opt/sbin:/opt/bin:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin'
export TMP='/opt/tmp'
export TEMP='/opt/tmp'
# This is for interactive sessions only
if [ "$PS1" ] ; then
export TERM=xterm
[ -d /opt/share/terminfo ] && export TERMINFO='/opt/share/terminfo'
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
fi
export TERMINFO=/opt/share/terminfo
答案1
出口到哪里
读完后https://bitbucket.org/padavan/rt-n56u/wiki/EN/UsingCron一个好方法出口配置变量对于 crontab 和 shell 的使用,都是将/opt
相关变量插入到/opt/etc/profile
.
来源地点和方式
使用(“来源") 其中的变量cron
建议:
- 创建 shell 包装脚本
/etc/profile
该包装器脚本中的源
注释:/etc/profile 也将源 /opt/etc/profile- 通过在 crontab 配置内容前面添加以下行来调用该包装器脚本:
SHELL=/etc/storage/cron/shell-wrapper.sh