华硕路由器NVRAM空间清理
缘起
最近用了好几年的华硕路由器,在升级固件版本后,右上角有个提示,说是NVRAM空间不足了,可以重置或者清理dhcp进行释放。
开始看到这个提示是很懵逼的,因为路由器的内存页面显示还有很多内存的,因此有这次折腾过程。
折腾过程
什么是NVRAM
通过网上查询,这块NVRAM是内存,但是和普通内存有很大区别,这块内存最终是会存储到物理硬件的,而且NVRAM的大小,是cpu强相关的,基本在华硕路由器的某个型号下,是固定的大小,比如我在使用的路由器,是64KB的大小。
为什么会突然提示NVRAM空间补助
实际上,在路由器刚出厂时,这个NVRAM空间是设计好了的,在对应的系统下肯定不会超出的,但是随着时间的推移,路由器系统不断更新,引入了新的功能,尤其是梅林固件,会引入很多新功能。
而新功能一般独有相关的配置项,这些配置项都需要在NVRAM中又相关的key和value,很多默认没有设置的设置项,也有空的key在,因此也会占用空间。
如何清理呢
经过在snbforums查询,最终发现了如下脚本,能够自动筛选出没有value的空key,然后自动化的清理,验证下来可以满足使用要求。
nvram show | awk -F '=' 'NF==2&&$2=="" {system("nvram unset "$1)}' nvram commit
原理就是找到key为空的进行清理
如何自动化执行呢
可以和开机脚本结合起来,开机就自动执行,这里我路由器长期不重启,也就没有再设置了,需要时执行一下就好。
参考文档
https://www.er1czhang.com/post/mei-lin-qing-li-nvram-kong-jian/
https://www.snbforums.com/threads/rt-ac68-nvram-free-up-space.82810/
https://www.snbforums.com/threads/approved-ways-to-free-up-nvram-space.27591/#post-211287
https://www.snbforums.com/threads/high-nvram-usage.56848/
发表评论