public Exception Download_BackupFile(Info_FTPServer fTPServer)
        {
            try
            {
                File_Read_Write.Create_Exits_Folder(AppDomain.CurrentDomain.BaseDirectory + @"Download\");

                bool isDown = FTPClient.Download(fTPServer.URL + "BackupDB_zip/" + ServerSource + "/" + DateTime.Now.ToString("yyyy-MM-dd"), fTPServer.User, fTPServer.Pass, AppDomain.CurrentDomain.BaseDirectory + @"Download\", DBSource + ".zip");

                if (isDown != true)
                {
                    return(new Exception("Download Backup file failed!", new Exception("")));
                }

                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + DBSource + ".sql"))
                {
                    File.Delete(AppDomain.CurrentDomain.BaseDirectory + DBSource + ".sql");
                }

                ZipFile.ExtractToDirectory(AppDomain.CurrentDomain.BaseDirectory + @"Download\" + DBSource + ".zip", AppDomain.CurrentDomain.BaseDirectory);
            }
            catch (Exception op)
            {
                return(new Exception(op.Message, op.InnerException));
            }
            return(null);
        }
Exemple #2
0
        protected override void OnStop()
        {
            timer.Stop();

            File_Read_Write.Write_File(log_path, "-----------------------------------------------------", true);

            File_Read_Write.Write_File(log_path, DateTime.Now.ToString() + ": Service stopped!", true);

            File_Read_Write.Write_File(log_path, "-----------------------------------------------------", true);
        }
        public Exception Run_DongNen_DB(string DBName)
        {
            try
            {
                Ionic.Zip.ZipFile file = new ZipFile();
                file.AddDirectory(AppDomain.CurrentDomain.BaseDirectory + @"MySQLBackup\" + DBName);

                //System.IO.DirectoryInfo File_Info = new System.IO.DirectoryInfo(Registry_Read_Write.Read_Value(@"SOFTWARE\MaiA Sync\" + Server_Name + @"\SaveBackupTo", DB_Name));
                File_Read_Write.Create_Exits_Folder(AppDomain.CurrentDomain.BaseDirectory + @"Backup_zip");
                // file.SaveProgress += Save_Process;
                file.Save(AppDomain.CurrentDomain.BaseDirectory + @"Backup_zip\" + DBName + ".zip");
            }
            catch (Exception er)
            {
                return(er);
            }
            return(null);
        }
Exemple #4
0
        protected override void OnStart(string[] args)
        {
            //Backup();
            File_Read_Write.Write_File(log_path, "-----------------------------------------------------", true);
            File_Read_Write.Write_File(log_path, DateTime.Now.ToString() + ": Service Starting...", true);

            try
            {
                info_DB       = new List <Info_DB>();
                info_JobMySQL = new List <Info_MySQLJob>();

                info_DB = XML_read_write.ConvertXmlStringtoObject <List <Info_DB> >(System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "Database_Config.xml"));

                info_JobMySQL = XML_read_write.ConvertXmlStringtoObject <List <Info_MySQLJob> >(System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "MySQLDatabase_Config.xml"));


                fTPServer.URL  = ConfigurationManager.AppSettings["FTP_SERVER_URI"].ToString();
                fTPServer.User = ConfigurationManager.AppSettings["FTP_USER"].ToString();
                fTPServer.Pass = ConfigurationManager.AppSettings["FTP_PASSWORD"].ToString();

                _Server.Server_Name = ConfigurationManager.AppSettings["Server_Name"].ToString();
                _Server.User        = ConfigurationManager.AppSettings["User"].ToString();
                _Server.Pass        = ConfigurationManager.AppSettings["Pass"].ToString();

                File_Read_Write.Write_File(log_path, DateTime.Now + ": Load Config...Done!", true);

                timer.Start();
            }
            catch
            {
                File_Read_Write.Write_File(log_path, DateTime.Now + ": Load Config...failed!", true);
            }

            //Running(list_job[0]);

            //SQLServer_Running(info_DB[0]);

            //MySQL_Running(info_JobMySQL[0].Instances, info_JobMySQL[0].ListDB[0]);

            //for(int i = 0; i< info_JobMySQL.Count; i++)
            //{
            //    Restore(info_JobMySQL[i].DBSource);
            //}
        }
Exemple #5
0
        bool MySQL_Running(Info_MySQL_Instansce instansce, Info_MySQL_DB DB)
        {
            string    Mess = "";
            Exception er   = null;  //gán cờ er bằng null chỉ thị ko có lỗi

            Thread.CurrentThread.IsBackground = true;

            er = DB.Download_BackupFile(fTPServer);
            if (er != null)
            {
                Mess = er.Message + ": " + ((er.InnerException == null) ? "" : er.InnerException.Message);
                File_Read_Write.Write_File(log_path, DateTime.Now + ": Error - " + DB.DBTarget + ": " + Mess, true);

                SendEmail.Send_Email(DB.Email, null, "[Dashboard - RTS] Clone Database error!", "Server: " + instansce.Server_Name + @"\nDatabase name: " + DB.DBTarget + "\n" + Mess, false);

                return(false);
            }
            else
            {
                File_Read_Write.Write_File(log_path, DateTime.Now + ": Download Backup file " + fTPServer.URL + "BackupDB_zip/" + DB.ServerSource + "/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + DB.DBSource + ".zip....done!", true);
            }


            er = DB.Excute_Restore_DB(instansce);
            if (er != null)
            {
                Mess = er.Message + ": " + ((er.InnerException == null) ? "" : er.InnerException.Message);
                File_Read_Write.Write_File(log_path, DateTime.Now + ": Error - " + DB.DBTarget + ": " + Mess, true);

                SendEmail.Send_Email(DB.Email, null, "[Dashboard - RTS] Clone Database error!", "Server: " + instansce.Server_Name + @"\nDatabase name: " + DB.DBTarget + "\n" + Mess, false);

                return(false);
            }
            else
            {
                File_Read_Write.Write_File(log_path, DateTime.Now + ": Restore " + DB.ServerSource + @"\" + DB.DBSource + " to " + instansce.Server_Name + @"\" + DB.DBTarget + " done!", true);
            }

            SendEmail.Send_Email(DB.Email, null, "[Dashboard - RTS] Clone Database succufully!", "Clone Database " + DB.ServerSource + @"\" + DB.DBSource + " to " + instansce.Server_Name + @"\" + DB.DBTarget + " succufully!", false);

            return(true);
        }
Exemple #6
0
        public static Exception Send_Email(List <string> ToEmail, List <string> CC, string title, string content, bool isHtml)
        {
            for (int j = 0; j < 5; j++)
            {
                try
                {
                    MailMessage mail      = new MailMessage();
                    string      FromEmail = ConfigurationManager.AppSettings["Email"];
                    string      Pass      = ConfigurationManager.AppSettings["Password"];
                    string      FromName  = ConfigurationManager.AppSettings["FromName"];

                    SmtpClient smtpServer = new SmtpClient(ConfigurationManager.AppSettings["SMTP_Server"]);
                    mail.From = new MailAddress(FromEmail, FromName);

                    if (ToEmail == null || ToEmail.Count == 0)
                    {
                        return(new Exception("To Email is Null."));
                    }
                    for (int i = 0; i < ToEmail.Count; i++)
                    {
                        if (string.IsNullOrEmpty(ToEmail[i]))
                        {
                            continue;
                        }
                        mail.To.Add(ToEmail[i]); // Email cần đến
                    }

                    if (CC != null)
                    {
                        for (int i = 0; i < CC.Count; i++)
                        {
                            if (string.IsNullOrEmpty(CC[i]))
                            {
                                continue;
                            }
                            mail.CC.Add(CC[i]); // Email cần CC
                        }
                    }


                    mail.Subject           = (title == "") ? "No subject" : title;
                    mail.Body              = content;
                    mail.IsBodyHtml        = isHtml;
                    mail.Priority          = MailPriority.High;
                    smtpServer.Port        = Convert.ToInt32(ConfigurationManager.AppSettings["Port"]);
                    smtpServer.Credentials = new NetworkCredential(FromEmail, Pass);
                    smtpServer.EnableSsl   = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);

                    Disable_CertificateValidation();

                    smtpServer.Send(mail);

                    File_Read_Write.Write_File(AppDomain.CurrentDomain.BaseDirectory + @"Log\" + DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.ToString() + ": Sending email \"" + title + "\" TO " + String.Join(", ", ToEmail.ToArray()) + " and " + ((CC == null) ? "no CC" : "CC to " + String.Join(", ", CC.ToArray())) + " Succufully!", true);

                    break;
                }
                catch (Exception er)
                {
                    File_Read_Write.Write_File(AppDomain.CurrentDomain.BaseDirectory + @"Log\" + DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.ToString() + ": Try " + (j + 1) + ": Error - Sending email \"" + title + "\" TO " + String.Join(", ", ToEmail.ToArray()) + " and " + ((CC == null) ? "no CC" : "CC to " + String.Join(", ", CC.ToArray())) + " error!" + er.Message, true);
                }
            }
            return(null);
        }