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
可能是一個選擇。雖然我第一次搜尋“locate database exclude”確實返回了一篇部落格文章,建議對 Arch Linux 使用“/etc/updatedb.conf”。更新了b.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 updatedb 文件指出:通常,作業系統有一個 shell 腳本“導出”變數定義的配置,並使用另一個 shell 腳本將配置文件“源”到環境中,然後在環境中執行 updatedb。
我的嵌入式 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
出口到哪裡
閱讀https://bitbucket.org/padavan/rt-n56u/wiki/EN/UsingCron後,為 crontab 和 shell 使用導出配置變數的好方法是將
/opt
相關變數插入/opt/etc/profile
.在哪里以及如何採購
要使用 (" source “) 其中的變數,
cron
建議:
- 創建一個外殼包裝腳本
- source
/etc/profile
在該包裝腳本
註釋中: /etc/profile 也將 source /opt/etc/profile- 通過在 crontab 配置內容前面加上以下行來呼叫該包裝器腳本:
SHELL=/etc/storage/cron/shell-wrapper.sh