コード例 #1
0
        private int CreateNewBackup(IObjectStoreWriter writer)
        {
            var processStartInfo = new ProcessStartInfo("bash",
                                                        $"-c \"{PathToPgDump} -h {Host} -p {Port} -U {UserName} -d {DbName} -F tar | gzip\"")
            {
                RedirectStandardOutput = true,
                UseShellExecute        = false,
                CreateNoWindow         = true
            };

            processStartInfo.Environment.Add("PGPASSWORD", Password);
            var process = new Process {
                StartInfo = processStartInfo
            };

            process.Start();

            var backupName = $"{DbName}_{DateTime.UtcNow.ToString("s").Replace(":", ".")}.tar.gz";

            Console.WriteLine($"Creating new backup: {backupName}...");

            writer.WriteAsync(backupName, process.StandardOutput.BaseStream).Wait();
            process.WaitForExit();

            Console.WriteLine("Creating new backup completed.");
            return(process.ExitCode);
        }
コード例 #2
0
        private void RemoveOldBackups(IObjectStoreWriter writer)
        {
            var now             = DateTime.UtcNow;
            var removeOlderThen = now.Subtract(RemoveThreshold);

            Console.WriteLine("Removing old backups...");

            writer.DeleteOldBackupsAsync(removeOlderThen).Wait();

            Console.WriteLine("Removing old backups completed.");
        }