Howto Manage More Than One Device: Difference between revisions

From Phobos Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 85: Line 85:
Saved files are in the format prefix-DATE-AND-TIME-gwSetup.bin for version 3 and prefix-DATE-AND-TIME-setup.tar.xz for version 4
Saved files are in the format prefix-DATE-AND-TIME-gwSetup.bin for version 3 and prefix-DATE-AND-TIME-setup.tar.xz for version 4
== Get Version ==
== Get Version ==
To get the firmware information there are two scripts ReadVersion.bat:
<syntaxhighlight lang="dos">
@echo off
echo Check for arguments
if "%1" == "" (
goto usage
)
if "%2" == "" (
goto usage
)
if "%3" == "" (
goto usage
)
if "%4" == "" (
goto usage
)
set RTU_ADDR=%1
set USER_NAME=%2
set USER_PW=%3
set DATETS=%date%
set TIMETS_IN=%time%
set TIMETS=%TIMETS_IN: =0%
set YEAR=%DATETS:~-4,10%
set MDAY=%DATETS:~2,2%
set MONTH=%DATETS:~-7,2%
set HOUR=%TIMETS:~0,2%
set MIN=%TIMETS:~3,2%
set SEC=%TIMETS:~6,2%
set SETUP_FILE_PREFIX=%4-%YEAR%.%MONTH%.%MDAY%-%HOUR%.%MIN%.%SEC%
echo Get version info from RTU at %RTU_ADDR%
echo Get firmware.html and save it to %SETUP_FILE_PREFIX%_firmware.html
pscp.exe -pw %USER_PW% %USER_NAME%@%RTU_ADDR%:/var/www/firmware.html %SETUP_FILE_PREFIX%-firmware.html
echo Done reading from RTU
exit /b
pause
:usage
echo All arguments were not specified. Print the usage information.
echo Usage: %0 rtu_ip_addr user pw version_file
echo Example: %0 192.168.0.111 martem Xooviet0 MyDevice
pause
exit /b
</syntaxhighlight>
and GetVersion.bat
<syntaxhighlight lang="dos">
@echo off
start cmd /k ReadVersion 10.0.0.35 martem Xooviet0 GW6e_10.0.0.35
start cmd /k ReadVersion 10.0.0.36 martem Xooviet0 GW6e_10.0.0.36
start cmd /k ReadVersion 10.0.0.99 martem Xooviet0 GW6_10.0.0.99
</syntaxhighlight>
== Update Software ==
== Update Software ==

Revision as of 09:26, 29 October 2013

Here we explain how to manage multiple devices on Microsoft Windows. These scripts are provided as a starting point for administrators managing Martem devices in bulk. You can allways create your own, copy paste scripts found here or, just look at gws.exe "SSH Log" as a starting point.

Ping All

First lets see if all device are on the wire. For this it is easy to use ping utility. This script:

@echo off
start cmd /k ping 10.0.0.35 -t -w 2000
start cmd /k ping 10.0.0.36 -t -w 2000
start cmd /k ping 10.0.0.99 -t -w 2000

starts three windosws and starts to ping in each window different host. In this case line 2 starts a window for 10.0.0.35, line 3 starts a window for 10.0.0.36 and in line 4 starts a window for 10.0.0.99. If you want to add more hosts add lines after:

@echo off

.

Get Setups

Now that we know who is on the wire it is time to backup setups. For this there are two scripts. First one is ReadSetup.bat:

@echo off

echo Check for arguments

if "%1" == "" ( 
	goto usage
)

if "%2" == "" ( 
	goto usage
)

if "%3" == "" ( 
	goto usage
)

if "%4" == "" ( 
	goto usage
)

set RTU_ADDR=%1
set USER_NAME=%2
set USER_PW=%3

set DATETS=%date%
set TIMETS_IN=%time%
set TIMETS=%TIMETS_IN: =0%
set YEAR=%DATETS:~-4,10%
set MDAY=%DATETS:~2,2%
set MONTH=%DATETS:~-7,2%
set HOUR=%TIMETS:~0,2%
set MIN=%TIMETS:~3,2%
set SEC=%TIMETS:~6,2%

set SETUP_FILE_PREFIX=%4-%YEAR%.%MONTH%.%MDAY%-%HOUR%.%MIN%.%SEC%

echo Get configuration for RTU at %RTU_ADDR%

echo Get gwSetup.bin and save it to %SETUP_FILE_PREFIX%_gwSetup.bin
pscp.exe -pw %USER_PW% %USER_NAME%@%RTU_ADDR%:/usr/local/etc/telem/gwSetup.bin %SETUP_FILE_PREFIX%-gwSetup.bin

echo Get setup.tar.xz and save it to %SETUP_FILE_PREFIX%_setup.tar.xz
pscp.exe -pw %USER_PW% %USER_NAME%@%RTU_ADDR%:/usr/local/etc/telem/setup.tar.xz %SETUP_FILE_PREFIX%-setup.tar.xz

echo Done reading from RTU

exit /b
pause

:usage
echo All arguments were not specified. Print the usage information.
echo Usage: %0 rtu_ip_addr user pw setupfile_name
echo Example: %0 192.168.0.111 martem Xooviet0 MyDevice
pause
exit /b

This script expects four arguments: IP address, SSH username and password and prefix to identify the saved file. ReadSetup.bat is called from unother script where IP addresses and etc are specified. For instance:

@echo off
start cmd /k ReadSetup 10.0.0.99 martem Xooviet0 GW6_10.0.0.99
start cmd /k ReadSetup 10.0.0.35 martem Xooviet0 GW6e_10.0.0.35
start cmd /k ReadSetup 10.0.0.36 martem Xooviet0 GW6e_10.0.0.36

reads setups for three devices in addresses 10.0.0.99, 10.0.0.35 and 10.0.0.36. On file system you get version 3 and version 4 files, for instance:

GW6_10.0.0.99-2013.10.29-08.58.18-gwSetup.bin
GW6_10.0.0.99-2013.10.29-08.58.18-setup.tar.xz

Saved files are in the format prefix-DATE-AND-TIME-gwSetup.bin for version 3 and prefix-DATE-AND-TIME-setup.tar.xz for version 4

Get Version

To get the firmware information there are two scripts ReadVersion.bat:

@echo off

echo Check for arguments

if "%1" == "" ( 
	goto usage
)

if "%2" == "" ( 
	goto usage
)

if "%3" == "" ( 
	goto usage
)

if "%4" == "" ( 
	goto usage
)

set RTU_ADDR=%1
set USER_NAME=%2
set USER_PW=%3

set DATETS=%date%
set TIMETS_IN=%time%
set TIMETS=%TIMETS_IN: =0%
set YEAR=%DATETS:~-4,10%
set MDAY=%DATETS:~2,2%
set MONTH=%DATETS:~-7,2%
set HOUR=%TIMETS:~0,2%
set MIN=%TIMETS:~3,2%
set SEC=%TIMETS:~6,2%

set SETUP_FILE_PREFIX=%4-%YEAR%.%MONTH%.%MDAY%-%HOUR%.%MIN%.%SEC%

echo Get version info from RTU at %RTU_ADDR%

echo Get firmware.html and save it to %SETUP_FILE_PREFIX%_firmware.html
pscp.exe -pw %USER_PW% %USER_NAME%@%RTU_ADDR%:/var/www/firmware.html %SETUP_FILE_PREFIX%-firmware.html

echo Done reading from RTU

exit /b
pause

:usage
echo All arguments were not specified. Print the usage information.
echo Usage: %0 rtu_ip_addr user pw version_file
echo Example: %0 192.168.0.111 martem Xooviet0 MyDevice
pause
exit /b

and GetVersion.bat

@echo off
start cmd /k ReadVersion 10.0.0.35 martem Xooviet0 GW6e_10.0.0.35
start cmd /k ReadVersion 10.0.0.36 martem Xooviet0 GW6e_10.0.0.36
start cmd /k ReadVersion 10.0.0.99 martem Xooviet0 GW6_10.0.0.99

Update Software