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); }
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."); }