Jak przenieść zmienne NVRAM między routerami??
|
jack78 |
Dodano 07-08-2016 14:24
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Instrukcja: https://openlinksys.info/forum/viewth...ost_156573
Cześć,
wyeksportowałem sobie zmienne z NVRAM do pliku, interesował mnie tylko zmienne:
dhcpd_static
new_qoslimit_rules
portforward
resztę ustawiam ręcznie.
próbuje je teraz wrzucić do nowego routera niestety bez skutków. Ciągle dostaje jakieś błędy
/tmp/.wxhui4zM: line 5: syntax error: unexpected redirection
Zmienne pochodzą z Tomato 124 i próbuję je wrzucić do Tomato 138. Dodam że kiedyś to już robiłem i wszystko działało, czy coś się zmieniło w Tomato 138 że teraz to nie działa?
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 08-08-2016 00:08
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Skrypt ktory dziala na MIPS i ARM
1. Zapisz skrypt do pliku, np. export.sh lub sciagnij moj plik export.zip
#!/bin/sh
#USE AT YOUR OWN RISK.
#THIS SCRIPT DOES NOT COME WITH ANY WARRANTY WHATSOEVER.
#
#Backs up selected nvram variables in "nvram export --set" format.
#
#Correctly handles multi-line entries.
#
#Thanks to ryzhov_al for basic approach.
#
#Should work equally well with both MIPS and ARM builds.
#
#Looks for a list of items to export in $etc/scriptname.ini
#OR enter items to grep for below.
#
#The items list is a list of regular expressions to match against the
#nvram variable names.
#
#Script assumes all entries are at beginning of line(prefixed with ^).
#
#Leave items list blank to backup up all of nvram. Resulting in essentially
#the same output as MIPS "nvram export --set"
#
#The items list below is only intended as example and is not complete or
#comprehensive. Customize for your own use.
#
#Edit list below if not using .ini file, it is ignored if .ini file is found
items='
dhcpd
wl[0-9]
ddnsx
adblock
wan_hwaddr
portforward
smbd
usb
vpn_server1
vpn_client1
http
cstats
rstats
log_file
script
clkfreq
'
etc=/tmp/etc
base=${0##*/}; base=${base%.*}
config=$etc/$base.ini
#file to output - default to stdout
if [ "$1" != "" ] ; then
backupfile="$1"
else
backupfile=/proc/$$/fd/1
fi
grepstr=$( { [ -r $config ] && cat $config || echo "$items" ; } | sed -e 's/[\t ]//g;/^$/d' | sed ':a;N;$!ba;s/\n/\\\|\^/g')
{
echo "#Exporting $grepstr"
for item in $(nvram show 2>/dev/null | grep "^.*=" | grep "$grepstr" | awk -F= "{print \$1}" | sort -u)
do
item_value="$(nvram get $item | sed 's!\([\$\"\`]\)!\\\1!g' echo nvgetwasnull)"
case $item_value in
nvgetwasnull) ;;
*) echo "nvram set ${item}=\"${item_value%
nvgetwasnull}\"" ;;
esac
done
}>"$backupfile"
2. Edytuj zmienne ktore chcesz wyeksportowac po items='
Mozna tez uzyc pliku .ini ze zmiennymi, w tym tutku pokazuje tylko jak edytowac zmienne w pliku export.sh.
3. Skopiuj plik export.sh do jakiegos katalogu, w moim przypadku bedzie to /nas/downloads (mozna do /tmp, ale pamietaj ze po restarcie routera pliki znikna)
Nie zapomnijmy o nadaniu uprawnien do uruchomienia +x przez telnet/ssh w katalogu gdzie znajduje sie plik export.sh
4. EXPORT ZMIENNYCH. W katalogu gdzie znajduje sie plik export.sh wydaj nastepujaca komende:
./export.sh > zmienne.txt
Zmienne z NVRAM zostaly zapisane u mnie do pliku /nas/downloads/zmienne.txt
5. IMPORT ZMIENNYCH:
a) Skopiuj wszystko co sie zaczyna od "nvram set" z pliku zmienne.txt (bez #Exporting...na samej gorze)
b) Wklej zmienne przez ssh/telnet (nie rekomenduje wszystkiego na raz jak masz duzo zmiennych)
c) Ostatnia komenda to
d) Przerestartuj router
Prosze o wasze sugestie. Dzieki za testy Steel_Rat :)
kille72 załączono następujące plik:
Nie masz uprawnień, by zobaczyć załączniki w tym wątku.
|
|
|
|
jack78 |
Dodano 08-08-2016 07:15
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Pisałem wczoraj z kolega MONTER, autorem programiku do przenoszenia danych między routerami - http://monter.techlog.pl/files/downlo...ntmigrate/
Skompilował dziś w nocy wersję dla ARM i wszystko działa.
Ale oczywiście Twoją propozycję również przetestuję, ponieważ muszę jakoś przenieść więcej zmiennych niż tylko Static DHCP, z tym że po pracy, bo teraz muszę się już zbierać
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 08-08-2016 16:11
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Dopisalem co mnie interesuje, eksport dziala elegancko.
dhcpd
wl[0-9]
ddnsx
adblock
wan_hwaddr
portforward
smbd
usb
vpn_server1
vpn_client1
http
cstats
rstats
log_file
script
clkfreq
|
|
|
|
jack78 |
Dodano 08-08-2016 20:52
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Co robię źle??
jeśli skopiuje plik export.sh do routera i wydam komendę
./export.sh > zmienne.txt
to dostaję błąd Permission denied
natomiast jeśli plikowi export.sh nadam uprawnienia
chmod +x export.sh
wtedy dostaję błąd ./export.sh not found.
A mimo to każdorazowy jest generowany plik zmienne.txt, tylko że jest pusty.
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 08-08-2016 21:05
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Pokaz wynik ls -la
|
|
|
|
jack78 |
Dodano 08-08-2016 21:14
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
root@unknown:/tmp# ls -la export.sh
-rwxr-xr-x 1 root root 1714 Aug 8 20:39 export.sh
root@unknown:/tmp#
Może znaczenie ma to że robię to na tomaro ARM 124, a nie na najnowszym 138
Połączony z 08 sierpień 2016 21:22:27:
Możesz wrzucić tutaj fragment twojego wyeksportowanego pliku zmienne txt??
np fragment odpowiedzialny za portforwarding?
Może na tej podstawie przeedytuje sobie pliki które posiadam i uda mi sie to ręcznie przenieść.
Edytowany przez jack78 dnia 08-08-2016 21:22
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 08-08-2016 21:27
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
#!/bin/sh
items='
portforward
'
etc=/tmp/etc
base=${0##*/}; base=${base%.*}
config=$etc/$base.ini
#file to output - default to stdout
if [ "$1" != "" ] ; then
backupfile="$1"
else
backupfile=/proc/$$/fd/1
fi
grepstr=$( { [ -r $config ] && cat $config || echo "$items" ; } | sed -e 's/[\t ]//g;/^$/d' | sed ':a;N;$!ba;s/\n/\\\|\^/g')
{
echo "#Exporting $grepstr"
for item in $(nvram show 2>/dev/null | grep "^.*=" | grep "$grepstr" | awk -F= "{print \$1}" | sort -u)
do
item_value="$(nvram get $item | sed 's!\([\$\"\`]\)!\\\1!g' echo nvgetwasnull)"
case $item_value in
nvgetwasnull) ;;
*) echo "nvram set ${item}=\"${item_value%
nvgetwasnull}\"" ;;
esac
done
}>"$backupfile"
./export.sh > zmienne.txt
#Exporting portforward
nvram set ipv6_portforward=""
nvram set portforward="1<3<<40101<<192.168.1.101"
|
|
|
|
jack78 |
Dodano 08-08-2016 23:35
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
Coś jest nie tak.
Nawet jak próbuję wrzucić Twoją zmienną do routera to dostaję błąd: /tmp/.wxwdwQRi: line 5: syntax error: unterminated quoted string
Wrzucę jutro jakąs starszą wersję softu i jeszcze raz próbuję, może w Tomato 138 jest coś nie tak.
Połączony z 09 sierpień 2016 21:47:23:
Próbowałem 132 NOSMP i zwykłą, 138 również obie, na żadnej nie działa komenda
więc nie możliwe jest przeniesienie tych danych w ten sposób.
Widocznie w ARM zmiany były na tyle głębokie że taki sposób przenoszenia danych nie działa.
Edytowany przez jack78 dnia 09-08-2016 21:47
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 09-08-2016 22:31
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
OK! Juz wiem jaki masz problem!
Brakowalo ", poprawilem, sorry!
Ma byc
nvram set portforward="1<3<<40101<<192.168.1.101[color=#ff0000]"[/color]
|
|
|
|
jack78 |
Dodano 09-08-2016 23:37
|
OL Maniac
Posty: 1365
Dołączył: 22/04/2007 22:28
|
No faktycznie, teraz się importuje.
Nadal nie mogę wyeksportować Twoją metodą, ale to nie problem, bo robię to w inny sposób.
Mikrotik hAP ac2
UniFi AP AC v2-OFW, UniFi AP PRO- OpenWRT,
Linksys E1000v2 - Tomato-RT-N5x-MIPSR2-116-Hyzoom.4M-Mini
Tenda AC10 - AC1200 OFW
NAS - HP Microserver Gen8 i3-3220T, 8GB RAM 5x 3TB WD RED | Xpenology
|
|
|
|
kille72 |
Dodano 10-08-2016 00:46
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Musi dzialac, testowane przez pare osob.
Połączony z 22 sierpień 2016 00:47:23:
Dzis bylem zmuszony do wyczyszczenia NVRAM po testach VLAN, wytestowalem wiec skrypt, export i import zmiennych. Po 15 minutach mialem wszystko ustawione! Jedyne czego zapomnialem wyeksportowac to Wireless Channel oraz Wireless Channel Width. I like!
|
|
|
|
ovner |
Dodano 19-11-2016 22:12
|
Power User
Posty: 368
Dołączył: 15/08/2009 21:34
|
@kille72 wałkuje skrypt który podałeś, ale borykam się z tym samym problemem co jack78 mianowicie
[root@apek opt]$ ./export.sh > txt.txt
-sh: ./export.sh: not found
[root@apek opt]$ export.sh > txt.txt
-sh: export.sh: not found
[root@apek opt]$ ls -la export.sh
-rwxr--r-- 1 root root 1639 Nov 19 21:46 export.sh
wyeksportowałem sobie ręcznie to co potrzebuje, ale mam problem z zmienną script_init po po wyeksportowaniu
dostaje tylko pierwszą linijkę
brakuje całej reszty eksporty ścieżek, montowania, bcm_nat itp
Kolejna rzecz to po czysczeniu nvramu i imporcie np
nvram set wl0_security_mode="wpa2_personal"
nvram set wl0_wpa_psk="qparka"
nvram set wl0_crypto="tkip+aes"
nvram set wl0_channel="6"
nvram set wl0_country_code="SG"
nvram set wl0_ssid="Home"
nvram set wl0_nctrlsb="lower"
nvram commit
po reboocie routera w basic jest ustawione szyfrowanie, ale sieć jest otwarta jak po czyszczeniu nvramu i dopiero ręczne kliknięcie w Save włącza szyfrowanie.
TUF-AX5400 @ Firmware:388.1_0-gnuton1
RT-N16 @ FreshTomato Firmware 2023.3 MIPSR2 K26 USB VPN + Huawei e3372 no-hilink
|
|
|
|
kille72 |
Dodano 19-11-2016 22:21
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Hmm...nie rozumiem dlaczego, nie tylko u mnie dziala:
root@Asus:/nas/downloads# ls -la
drwxr-xr-x 3 root root 4096 Nov 14 15:49 .
drwxr-xr-x 7 root root 4096 Aug 31 21:40 ..
-rwxr--r-- 1 root root 1724 Sep 4 23:20 export.sh
drwxr-xr-x 4 root root 4096 Nov 9 15:22 tomato-arm-kille72
root@Asus:/nas/downloads# ./export.sh > zmienne.txt
root@Asus:/nas/downloads# ls -la
drwxr-xr-x 3 root root 4096 Nov 19 22:20 .
drwxr-xr-x 7 root root 4096 Aug 31 21:40 ..
-rwxr--r-- 1 root root 1724 Sep 4 23:20 export.sh
drwxr-xr-x 4 root root 4096 Nov 9 15:22 tomato-arm-kille72
-rw-r--r-- 1 root root 17320 Nov 19 22:20 zmienne.txt
Połączony z 19 listopad 2016 22:41:10:
Zalogowalem sie do routera znajomego i stworzylem plik export.sh w JFFS, dostalem Permission denied za 1 razem ale po chmod +x export.sh wszystko poszlo bez problemu.
script_init tez elegancko wyeksportowalo:
> /var/run/firstrun
echo \"LABEL=opt /opt ext4 defaults 0 1\" >> /etc/fstab
echo \"LABEL=nas /nas ext4 defaults 0 1\" >> /etc/fstab
fi"
|
|
|
|
ovner |
Dodano 19-11-2016 22:52
|
Power User
Posty: 368
Dołączył: 15/08/2009 21:34
|
[root@apek tmp]$ chmod -x export.sh
[root@apek tmp]$ ./export.sh > zrzut.txt
-sh: ./export.sh: Permission denied
[root@apek tmp]$ ls -ls export.sh
4 ---------- 1 root root 1802 Nov 19 21:12 export.sh
[root@apek tmp]$ chmod +x export.sh
[root@apek tmp]$ ls -ls export.sh
4 ---x--x--x 1 root root 1802 Nov 19 21:12 export.sh
[root@apek tmp]$ ./export.sh > zrzut.txt
-sh: ./export.sh: not found
[root@apek tmp]$
chmod -x Permission denied
chmod +x not found :@
chyba jutro kolejne czyszczenie nvram i się pobawie. Btw tomato v132.
TUF-AX5400 @ Firmware:388.1_0-gnuton1
RT-N16 @ FreshTomato Firmware 2023.3 MIPSR2 K26 USB VPN + Huawei e3372 no-hilink
|
|
|
|
kille72 |
Dodano 19-11-2016 22:57
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
Daj mu (Everyone can read write and execute)
|
|
|
|
ovner |
Dodano 19-11-2016 23:04
|
Power User
Posty: 368
Dołączył: 15/08/2009 21:34
|
[root@apek jffs]$ chmod 777 export.sh
[root@apek jffs]$ ls -ls export.sh
2 -rwxrwxrwx 1 root root 1802 Nov 19 21:12 export.sh
[root@apek jffs]$ ./export.sh > zrzut.t
-sh: ./export.sh: not found
[root@apek jffs]$ ls
export.sh zrzut.t
[root@apek jffs]$
NC
TUF-AX5400 @ Firmware:388.1_0-gnuton1
RT-N16 @ FreshTomato Firmware 2023.3 MIPSR2 K26 USB VPN + Huawei e3372 no-hilink
|
|
|
|
kille72 |
Dodano 19-11-2016 23:06
|
Administrator
Posty: 2986
Dołączył: 12/02/2007 23:43
|
@Steel_Rat: Pokaz jak to wyglada u Ciebie prosze.
|
|
|
|
Steel_Rat |
Dodano 19-11-2016 23:47
|
OL Maniac
Posty: 1831
Dołączył: 29/05/2011 22:24
|
Nie wiem o co chodzi ale u mnie działa
WRT3200ACN (WRT32X) + OpenWRT 18.06+światełko 150/150 Mb/s
Asus RT-AC68UvE1 + RMerlin + Entware
Netgear WNR3500Lv2 + DDWRT
|
|
|
|
ovner |
Dodano 20-11-2016 09:59
|
Power User
Posty: 368
Dołączył: 15/08/2009 21:34
|
Wyczyściłem nvram i nadal not found
W ramach testów potwierdziłem
Cytat ovner napisał(a):
po reboocie routera w basic jest ustawione szyfrowanie, ale sieć jest otwarta jak po czyszczeniu nvramu i dopiero ręczne kliknięcie w Save włącza szyfrowanie.
Na wyższych wersjach nie testowałem bo mam problem z połączeniem drukarki z kompem po wi-fi (niestety winne tomato ) czekam na nową wersję.
TUF-AX5400 @ Firmware:388.1_0-gnuton1
RT-N16 @ FreshTomato Firmware 2023.3 MIPSR2 K26 USB VPN + Huawei e3372 no-hilink
|
|
|