如何在嵌入式 Linux 上“导出”配置变量并“获取”它们?

如何在嵌入式 Linux 上“导出”配置变量并“获取”它们?

路由器运行包含 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 脚本,用于导出配置变量并将它们返回到环境中。

我如何验证该操作系统的导出和来源?

当操作系统不这样做时,如何在这里正确导出和获取配置变量?


环境

  • GNUlocate是通过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建议:

  1. 创建 shell 包装脚本
  2. /etc/profile该包装器脚本中的源
    注释:/etc/profile 也将源 /opt/etc/profile
  3. 通过在 crontab 配置内容前面添加以下行来调用该包装器脚本:SHELL=/etc/storage/cron/shell-wrapper.sh

相关内容