| 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.txtZmienne 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 -ladrwxr-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/firstrunecho \"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/sAsus 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
  | 
|  | 
 
 |