Last active
September 8, 2020 21:38
-
-
Save niikoo/5cad6cd5a8ec18b733abcaf267f75fca to your computer and use it in GitHub Desktop.
OpenWRT nvram-clean.sh for Linksys wrt54gl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# OpenWRT nvram-clean.sh for Linksys wrt54gl | |
# | |
# Usage: https://openwrt.org/toh/linksys/wrt54g | |
# | |
# Source: https://web.archive.org/web/20140326172212/http://downloads.openwrt.org/people/nbd/nvram-clean.sh | |
# Version: 1.0 | |
empty() { | |
case "$1" in | |
"") return 0 ;; | |
*) return 255 ;; | |
esac | |
} | |
equal() { | |
case "$1" in | |
"$2") return 0 ;; | |
*) return 255 ;; | |
esac | |
} | |
neq() { | |
case "$1" in | |
"$2") return 255 ;; | |
*) return 0 ;; | |
esac | |
} | |
exists() { | |
( < $1 ) 2>&- | |
} | |
nvram_unset() { | |
nvram unset $1 | |
} | |
echo -n "Before: " | |
nvram show > /dev/null | |
nvram show 2>/dev/null | { | |
while :; do | |
UNSET="" | |
read LINE | |
empty "$LINE" && exit | |
CONTENTS="${LINE##*=}" | |
LINE="${LINE%%=*}" | |
TYPE="${LINE%%_*}" | |
case "$TYPE" in | |
wan0) UNSET=1;; | |
upnp) UNSET=1;; | |
forwardspec) UNSET=1;; | |
log) UNSET=1;; | |
fullswitch) UNSET=1;; | |
maskmac) UNSET=1;; | |
inet) UNSET=1;; | |
wanup) UNSET=1;; | |
fon) UNSET=1;; | |
filter) UNSET=1;; | |
apwatchdog) UNSET=1;; | |
routing) UNSET=1;; | |
wl) UNSET=1;; | |
svqos) UNSET=1;; | |
dr) UNSET=1;; | |
snmpd) UNSET=1;; | |
port) UNSET=1;; | |
wshaper) UNSET=1;; | |
restore) UNSET=1;; | |
qos) UNSET=1;; | |
get) UNSET=1;; | |
bird) UNSET=1;; | |
wol) UNSET=1;; | |
expert) UNSET=1;; | |
ses) UNSET=1;; | |
radvd) UNSET=1;; | |
cron) UNSET=1;; | |
chilli) UNSET=1;; | |
jffs2) UNSET=1;; | |
block) UNSET=1;; | |
remote) UNSET=1;; | |
pptpd) UNSET=1;; | |
http) UNSET=1;; | |
port) UNSET=1;; | |
QoS) UNSET=1;; | |
sshd) UNSET=1;; | |
ipv6) UNSET=1;; | |
syslogd) UNSET=1;; | |
tpclient) UNSET=1;; | |
ezc) UNSET=1;; | |
is) UNSET=1;; | |
zebra) UNSET=1;; | |
ospfd) UNSET=1;; | |
ntp) UNSET=1;; | |
mac) UNSET=1;; | |
ping) UNSET=1;; | |
dnsmasq) UNSET=1;; | |
skip) UNSET=1;; | |
security) UNSET=1;; | |
daylight) UNSET=1;; | |
multicast) UNSET=1;; | |
aol) UNSET=1;; | |
forward) UNSET=1;; | |
ct) UNSET=1;; | |
sel) UNSET=1;; | |
rc) UNSET=1;; | |
txpwr) UNSET=1;; | |
d11g) UNSET=1;; | |
sv) UNSET=1;; | |
hs) UNSET=1;; | |
https) UNSET=1;; | |
mtu) UNSET=1;; | |
firmware) UNSET=1;; | |
autofw) UNSET=1;; | |
version) UNSET=1;; | |
tpservers) UNSET=1;; | |
stats) UNSET=1;; | |
telnetd) UNSET=1;; | |
resetbutton) UNSET=1;; | |
nas) UNSET=1;; | |
httpsd) UNSET=1;; | |
def) UNSET=1;; | |
fw) UNSET=1;; | |
dhcpd) UNSET=1;; | |
prange) UNSET=1;; | |
manual) UNSET=1;; | |
traceroute) UNSET=1;; | |
lcp) UNSET=1;; | |
time) UNSET=1;; | |
local) UNSET=1;; | |
wk) UNSET=1;; | |
action) UNSET=1;; | |
global) UNSET=1;; | |
web) UNSET=1;; | |
txant) UNSET=1;; | |
rate) UNSET=1;; | |
timer) UNSET=1;; | |
NC) UNSET=1;; | |
sipgate) UNSET=1;; | |
sh) UNSET=1;; | |
ip) UNSET=1;; | |
kaid) UNSET=1;; | |
sip) UNSET=1;; | |
need) UNSET=1;; | |
samba) UNSET=1;; | |
rflow) UNSET=1;; | |
dhcpfwd) UNSET=1;; | |
schedule) UNSET=1;; | |
max) UNSET=1;; | |
sys) UNSET=1;; | |
clean) UNSET=1;; | |
trunking) UNSET=1;; | |
language) UNSET=1;; | |
enable) UNSET=1;; | |
macupd) UNSET=1;; | |
trigger) UNSET=1;; | |
vlans) UNSET=1;; | |
smtp) UNSET=1;; | |
status) UNSET=1;; | |
mmc) UNSET=1;; | |
esac | |
TYPE="${TYPE%%[0-9]}" | |
TYPE="${TYPE%%[0-9]}" | |
case "$TYPE" in | |
altdns) UNSET=1;; | |
esac | |
TAIL=${LINE##*_} | |
case "$TAIL" in | |
static) UNSET=1;; | |
statics) UNSET=1;; | |
ospf) UNSET=1;; | |
if) UNSET=1;; | |
desc) UNSET=1;; | |
buf) UNSET=1;; | |
macmode1) UNSET=1;; | |
lease) UNSET=1;; | |
primary) UNSET=1;; | |
speed) UNSET=1;; | |
passphrase) UNSET=1;; | |
pass) UNSET=1;; | |
dyndnstype) UNSET=1;; | |
domain) UNSET=1;; | |
srv) UNSET=1;; | |
unit) UNSET=1;; | |
2) UNSET=1;; | |
route) UNSET=1;; | |
pppifname) UNSET=1;; | |
ac) UNSET=1;; | |
dns0|dns1|dns2) UNSET=1;; | |
dhcp) UNSET=1;; | |
wins) UNSET=1;; | |
ofdm) UNSET=1;; | |
result) UNSET=1;; | |
loglevel) UNSET=1;; | |
default) UNSET=1;; | |
change) UNSET=1;; | |
disable) UNSET=1;; | |
keepalive) UNSET=1;; | |
accepted) UNSET=1;; | |
rejected) UNSET=1;; | |
dropped) UNSET=1;; | |
server) UNSET=1;; | |
delay) UNSET=1;; | |
hwnames) UNSET=1;; | |
nat) UNSET=1;; | |
style) UNSET=1;; | |
encrypt) UNSET=1;; | |
status) UNSET=1;; | |
dnsmasq) UNSET=1;; | |
mac) UNSET=1;; | |
service) UNSET=1;; | |
x) UNSET=1;; | |
t) UNSET=1;; | |
enable) | |
case "$TYPE" in | |
ddns);; | |
log);; | |
upnp);; | |
*) UNSET=1;; | |
esac | |
;; | |
esac | |
TAIL1="$TAIL" | |
TAIL="${TAIL%%[0-9]}" | |
TAIL="${TAIL%%[0-9]}" | |
case "$TAIL" in | |
wds) equal "$TAIL" "$TAIL1" || UNSET=1;; | |
ipaddr|netmask) equal "$TYPE" wl && UNSET=1;; | |
hwaddr) | |
TMP=${LINE%[0-9]*} | |
TMP=${TMP%[0-9]} | |
equal "$TMP" "wl0_wds" && UNSET=1 | |
;; | |
esac | |
case "$LINE" in | |
pppoe_ver) UNSET=1;; | |
wl0_lazy_wds) UNSET=1;; | |
pppoe_static_ip) UNSET=1;; | |
ppp_static_ip) UNSET=1;; | |
pptp_get_ip) UNSET=1;; | |
l2tp_get_ip) UNSET=1;; | |
wan_get_dns) UNSET=1;; | |
wan_run_mtu) UNSET=1;; | |
ddns_wildcard) UNSET=1;; | |
os_name) UNSET=1;; | |
esac | |
case "$CONTENTS" in | |
11111) UNSET=1;; | |
0) equal "$TAIL" ipaddr && UNSET=1;; | |
"") UNSET=1;; | |
esac | |
case "${TYPE%%[0-9]*}" in | |
port) UNSET=1;; | |
esac | |
equal "$UNSET" 1 && nvram_unset "$LINE" | |
done | |
} | |
echo -n "After: " | |
nvram show >/dev/null | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment