瀏覽代碼

1、完善产品信息写入工具,实现在csv文件中配置mac地址后批量写入功能。

liyuezong 1 年之前
父節點
當前提交
16a2386cb7
共有 3 個文件被更改,包括 135 次插入 和 3 次删除
  1. 13 0
      output/t113i/prod/device_info.csv
  2. 5 3
      output/t113i/prod/push.bat
  3. 117 0
      output/t113i/prod/push_csv.bat

+ 13 - 0
output/t113i/prod/device_info.csv

@@ -0,0 +1,13 @@
+ÐòºÅ,ÐͺÅ,ÐòÁкÅ,MACÂë
+1,GC60-06K-150S,2025042400040036,8C:07:0F:E0:14:D5
+2,GC60-06K-150S,2025042400040037,3C:8B:81:14:F5:14
+3,GC60-06K-150S,2025042400040038,C8:56:FF:1F:1E:09
+4,GC60-06K-150S,2025042400040039,4C:AE:40:7D:DE:F9
+5,GC60-06K-150S,2025042400040040,14:32:33:5C:C4:08
+6,GC60-06K-150S,2025042400040041,A4:53:3A:A4:06:DB
+7,GC60-06K-150S,2025042400040042,18:C0:C0:27:8A:BF
+8,GC60-06K-150S,2025042400040043,FC:99:E0:B2:AD:92
+9,GC60-06K-150S,2025042400040044,EC:C4:4C:72:12:9E
+10,GC60-06K-150S,2025042400040045,D8:90:F7:03:E4:F1
+11,GC60-06K-150S,2025042400040046,38:A7:6C:3D:7E:6C
+12,GC60-06K-150S,2025042400040047,48:FF:99:EF:7F:90

+ 5 - 3
output/t113i/prod/push.bat

@@ -1,6 +1,6 @@
 @ECHO OFF
 
-SET IP=192.168.234.132
+SET IP=192.168.1.132
 
 SET BAT=0
 IF "%~1" NEQ "" (
@@ -37,7 +37,7 @@ ECHO send %FILE% to device ...
 ECHO y | %PSCP% -pw %PWD% %FILE% %USR%@%IP%:%DEVDIR%
 IF %ERRORLEVEL% NEQ 0 (
     ECHO send failed!
-    TIMEOUT /T 2 > NUL
+    TIMEOUT /T 5 > NUL
     EXIT /B 2
 )
 
@@ -45,12 +45,14 @@ ECHO send finished, release files now ...
 ECHO y | %PLINK%  -ssh -t -pw %PWD% %USR%@%IP% -m %FBAT%
 IF %ERRORLEVEL% NEQ 0 (
     ECHO upgrade failed!
+    TIMEOUT /T 5 > NUL
     EXIT /B 3
 )
 
 IF %BAT% EQU 0 (
+    ECHO upgrade successfully!
     ECHO quit now ...
-    TIMEOUT /T 2 > NUL
+    TIMEOUT /T 5 > NUL
 )
 
 EXIT /B 0

+ 117 - 0
output/t113i/prod/push_csv.bat

@@ -0,0 +1,117 @@
+@ECHO OFF
+
+SET IP=192.168.1.132
+
+SET BAT=0
+IF "%~1" NEQ "" (
+    SET IP=%1
+    SET BAT=1
+)
+
+SET CURDIR=%~dp0
+SET CURDIR=%CURDIR:~0,-1%
+
+SET  DEVDIR=/root
+
+SET PSCP=%CURDIR%\tools\pscp 
+SET PLINK=%CURDIR%\tools\plink
+
+SET USR=root
+SET FBAT=%CURDIR%\tools\script.sh
+SET PWD=gowone123
+
+SET FILE=PDUInfo.txt
+SET CSVFILE=device_info.csv
+
+::test ip
+ECHO ping %IP% ...
+PING -n 3 -w 500 %IP%  > NUL
+IF %ERRORLEVEL% NEQ 0 (
+    IF %BAT% EQU 0 (
+        ECHO %IP% can't reached!
+    )
+    EXIT /B 1
+)
+
+::获取设备MAC地址
+for /f "tokens=*" %%a in ('%PLINK% -batch -ssh %USR%@%IP% -pw %PWD% "cat /sys/class/net/eth0/address"') do set mac=%%a
+::MAC地址转换为大写
+call set "mac_upper=%%mac:a=A%%"
+call set "mac_upper=%%mac_upper:b=B%%"
+call set "mac_upper=%%mac_upper:c=C%%"
+call set "mac_upper=%%mac_upper:d=D%%"
+call set "mac_upper=%%mac_upper:e=E%%"
+call set "mac_upper=%%mac_upper:f=F%%"
+ECHO MAC Address: %mac_upper%
+
+:: 遍历device_info.csv文件查找匹配的行
+set model=null
+set serial_number=null
+
+:: 检查device_info.csv文件是否存在
+if not exist "%CSVFILE%" (
+    echo Error: File %CSVFILE% not found!
+    pause
+    exit /b 1
+)
+
+for /f "tokens=1,2,3,4 delims=," %%a in (%CSVFILE%) do (
+    if %%d==%mac_upper% (
+        set model=%%b
+        set serial_number=%%c
+    )
+)
+:: 输出结果
+echo PN: %model%
+echo SN: %serial_number%
+
+if not %model% == null (
+ECHO Successfully found device information matching the MAC address in file %CSVFILE%.
+) else (
+ECHO No matching MAC address found in file %CSVFILE%.
+pause
+EXIT /B 2
+)
+
+set "temp_file=%CURDIR%\PDUInfo_temp.txt"
+:: 处理文件
+(
+for /f "usebackq tokens=1* delims=:" %%a in ("%FILE%") do ( 
+    if %%a=="product_sn" (
+            echo "product_sn": "%model%" 
+        ) else if %%a=="device_no" (
+            echo "device_no": "%serial_number%" 
+        ) else (
+            echo %%a: %%b
+        )
+    )
+) > "%temp_file%"
+
+:: 替换原文件
+move /y "%temp_file%" "%FILE%" >nul
+ECHO Successfully written the product information to the configuration file %FILE%.
+
+::send files
+ECHO send %FILE% to device ...
+ECHO y | %PSCP% -pw %PWD% %FILE% %USR%@%IP%:%DEVDIR%
+IF %ERRORLEVEL% NEQ 0 (
+    ECHO send failed!
+    TIMEOUT /T 5 > NUL
+    EXIT /B 3
+)
+
+ECHO send finished, release files now ...
+ECHO y | %PLINK%  -ssh -t -pw %PWD% %USR%@%IP% -m %FBAT%
+IF %ERRORLEVEL% NEQ 0 (
+    ECHO upgrade failed!
+    TIMEOUT /T 5 > NUL
+    EXIT /B 4
+)
+
+IF %BAT% EQU 0 (
+    ECHO upgrade successfully!
+    ECHO quit now ...
+    TIMEOUT /T 5 > NUL
+)
+
+EXIT /B 0