using Apache.NMS.ActiveMQ.Commands;
|
using Rhea.Common;
|
using System;
|
using System.Collections.Generic;
|
using System.Diagnostics;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using Tiger.IBusiness;
|
|
namespace Tiger.Business
|
{
|
public class DbBackup : IDbBackup
|
{
|
/// <summary>
|
/// 运行备份数据库bat文件
|
/// </summary>
|
/// <param name="path"></param>
|
/// <exception cref="NotImplementedException"></exception>
|
public async Task<ApiAction> ExcuteBackupBat(string path)
|
{
|
var action = new ApiAction();
|
if (!File.Exists(path))
|
{
|
//Console.WriteLine("文件不存在!");
|
return null;
|
}
|
|
StringBuilder builder = new StringBuilder();
|
try
|
{
|
Process process = new Process();
|
FileInfo fileInfo = new FileInfo(path);
|
process.StartInfo.WorkingDirectory = fileInfo.Directory.FullName;
|
//关闭 shell 文件路径不一样
|
process.StartInfo.FileName = path;
|
process.StartInfo.UseShellExecute = false;
|
process.StartInfo.RedirectStandardInput = true; //重定向输入
|
process.StartInfo.RedirectStandardOutput = true; //重定向标准输出
|
process.StartInfo.RedirectStandardError = true; //重定向错误输出
|
process.StartInfo.CreateNoWindow = true;
|
process.Start();
|
|
//
|
StreamReader reader = process.StandardOutput;
|
string line = "";//每次读取一行
|
while ((line = reader.ReadLine()) != null)
|
{
|
//Console.WriteLine("message:" + line);
|
builder.AppendLine(line);
|
}
|
|
process.WaitForExit();
|
process.Close();
|
reader.Close();
|
action.Message = builder.ToString();
|
Logger.Interface.Info($"执行备份数据库批处理脚本信息: {builder}");
|
}
|
catch (Exception ex)
|
{
|
action.CatchExceptionWithLog(ex, $"执行备份数据库批处理脚本出错");
|
}
|
return action;
|
}
|
}
|
}
|