| 
 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
   
 | 
|   | 
 
 
 
 |