Эх сурвалжийг харах

增加 自动备份和修改启动DB SMS 工具 入参

MIke 2 жил өмнө
parent
commit
70891eb5bb

+ 4 - 2
src/Process/ProcessStarter.cs

@@ -47,12 +47,14 @@ namespace WingCloudServer.Loader
         /// 开始执行工具程序
         /// </summary>
         /// <param name="processName">工具程序名称</param>
-        public static void StartProcess(string namePath)
+        public static void StartProcess(string namePath, string paramsValue = "")
         {
             Process process = new Process();
             process.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
             process.StartInfo.FileName = namePath;
-            //process.StartInfo.Arguments = paramsValue;
+            process.StartInfo.Arguments = paramsValue;
+            process.StartInfo.RedirectStandardOutput = true; //重定向输出,
+            process.StartInfo.RedirectStandardError = true;
             process.Start();
 
         }

+ 50 - 0
src/Tools/win/startdumpdb.bat

@@ -0,0 +1,50 @@
+@echo off
+::title DBAutobackup
+set expirationDay=%~1
+if "%expirationDay%" == "" (
+   set expirationDay=-7
+)
+echo "expirationDay:"%expirationDay%
+set baktime=%~2
+if "%baktime%" == "" (
+   set baktime=0
+)
+echo "baktime:"%baktime%
+set port=%~3
+if "%port%" == "" (
+   set port=8301
+)
+echo "port:"%port%
+set outname=%~4
+if "%outname%" == "" (
+   set outname=DBdump
+)
+echo "outname:"%outname%
+set host="127.0.0.1"
+set mongodumpPath=%~5
+if "%mongodumpPath%" == "" (
+   set mongodumpPath=%~sdp0
+)
+echo "mongodumpPath:"%mongodumpPath%
+set intervaltime=3600
+echo "outmongodumpPath:"%mongodumpPath%%outname%
+echo %~sdp0
+cd /d %mongodumpPath%
+
+:while
+if %time:~0,2% == %baktime% (
+	if not exist %mongodumpPath%%outname%\%date:~0,4%-%date:~5,2%-%date:~8,2%.bak (
+		echo Start backup
+		mongodump /host:%host% /port:%port% /gzip /archive:%mongodumpPath%%outname%\%date:~0,4%-%date:~5,2%-%date:~8,2%.bak && echo backup success || echo backup error
+		Forfiles /p %mongodumpPath%%outname%\ /d %expirationDay% /m *.bak /c "cmd /c del /q /f @file" 2>nul | cmd /c ""
+	) else (
+		echo It has been backed up.
+	)
+) else (
+	echo Current time is %time:~0,2%:%time:~3,2%,backup time is %baktime%:00.
+)
+timeout /t %intervaltime% /NOBREAK | cmd /c ""
+
+cls
+
+goto :while

+ 27 - 6
src/Tools/win/startmongodb.bat

@@ -1,10 +1,31 @@
 @echo off
+set par=%~1
+set dbpath=%~2
+set logpath=%~3
 cd %~dp0
-set dir= %~dp0..\
-if not  exist %dir%Mongodb\Data (
-md %dir%Mongodb\Data)
+set dir=%~dp0..\
+if "%par%" == "" (
+   set outname=--port 8301  --nojournal  --quiet
+)
+if "%dbpath%" == "" (
+   set dbpath=%dir%Mongodb\Data
+)
+if "%logpath%" == "" (
+   set logpath=%dir%Mongodb\Logs\
+)
 
-if not  exist %dir%Mongodb\Logs\ (
-md %dir%Mongodb\Logs\ )
 
-start /b  mongod.exe --dbpath  %dir%Mongodb\Data  --logpath  %dir%Mongodb\Logs\DBLog   --port 8301  --nojournal  --quiet 
+echo "par:" %par%
+echo "dbpath:" %dbpath%
+echo "logpath:" %logpath%
+
+
+if not  exist %dbpath% (
+md %dbpath%)
+
+if not  exist %logpath% (
+md %logpath% )
+
+
+start /b  mongod.exe --dbpath  %dbpath%  --logpath  %logpath%DBLog   %par% 
+::start /b  mongod.exe --dbpath  %dir%Mongodb\Data  --logpath  %dir%Mongodb\Logs\DBLog   --port 8301  --nojournal  --quiet 

+ 2 - 1
src/Tools/win/startsms.bat

@@ -1,5 +1,6 @@
 @echo off 
+set address=%~1
 cd %~dp0
 @for /f %%i in ('tasklist /nh') do if "%%i"=="sms.exe"  echo "exist" &  goto end
-start /b sms.exe "http://*:8302/"
+start /b sms.exe  %address%  
 :end

+ 19 - 12
src/WingApplicationBuilder.cs

@@ -49,23 +49,30 @@ namespace WingCloudServer
                 {
                     if (!string.IsNullOrEmpty(item))
                     {
+                       var appItems= item.Split('|');
+                       var appItem="";//application 
+                       var  paramsValue="";
+                       if(appItems.Length>0)
+                       {
+                          appItem=appItems[0];
+                          for (int i = 1; i < appItems.Length; i++)
+                          {
+                              paramsValue +=" "+appItems[i];
+                          }
+                       }
+                       if(string.IsNullOrEmpty(appItem))
+                       {
+                         throw new Exception( " load appsetting:Dependencies.Apps is null");
+                       }
                         var  directory= Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"Packages");
-                        var appPath=Path.Combine(directory,item);
+                        var appPath=Path.Combine(directory,appItem);
                         if(!File.Exists(appPath))
                         {
                             string[] files = System.IO.Directory.GetFiles(directory,"", System.IO.SearchOption.TopDirectoryOnly);
-                            appPath=  files.FirstOrDefault(v=>v.Contains(item));
-                        }
-                        ProcessStarter.StartProcess(appPath);
-                        var arry = item.Split('.');
-                        if (arry.Length > 0)
-                        {
-                            _dependencieNames.Add(arry[0]);
-                        }
-                        else
-                        {
-                            _dependencieNames.Add(item);
+                            appPath=  files.FirstOrDefault(v=>v.Contains(appItem));
                         }
+                        ProcessStarter.StartProcess(appPath,paramsValue);
+                         _dependencieNames.Add(appItem);
 
                     }
                 }

+ 1 - 1
src/appsettings.json

@@ -82,7 +82,7 @@
     "HeartRateSeconds": 300
   },
   "Dependencies": {
-    "Apps": "startmongodb,startsms,"
+    "Apps":   "startmongodb|\"--port 8301 --nojournal --quiet\",startsms|http://*:8302/,startdumpdb|-7|0|8301|DBdump"
   },
   "Email": {
     "EmailUserName": "vcloud@vinno.com",