Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var RootCmd = &cobra.Command{ Use: "backup", Short: "Backup.", Long: `Manages backup files, stores them in multiple storage types and implements retention policy.`, Args: cobra.NoArgs, Run: func(cmd *cobra.Command, args []string) { if err := log.SetupLoggerWithCommand(cmd); err != nil { fmt.Printf("error setting up logger: %v\n", err) os.Exit(1) } logger.Info("starting backup") ctx, cancel := newContext() defer cancel() backupStorage, err := getBackupStorage() if err != nil { logger.Error(err, "error getting backup storage") os.Exit(1) } backupCompressor, err := getBackupCompressor() if err != nil { logger.Error(err, "error getting backup compressor") os.Exit(1) } logger.Info("reading target file", "file", targetFilePath) backupTargetFile, err := readTargetFile() if err != nil { logger.Error(err, "error reading target file", "file", targetFilePath) os.Exit(1) } logger.Info("obtained target backup", "file", backupTargetFile) if err := backupCompressor.Compress(backupTargetFile); err != nil { logger.Error(err, "error compressing backup", "file", backupTargetFile) os.Exit(1) } logger.Info("pushing target backup", "file", backupTargetFile, "prefix", s3Prefix) if err := backupStorage.Push(ctx, backupTargetFile); err != nil { logger.Error(err, "error pushing target backup", "file", backupTargetFile, "prefix", s3Prefix) os.Exit(1) } logger.Info("cleaning up old backups") backupNames, err := backupStorage.List(ctx) if err != nil { logger.Error(err, "error listing backup files") os.Exit(1) } oldBackups := backup.GetOldBackupFiles(backupNames, maxRetention, logger.WithName("backup-cleanup")) logger.Info("old backups to delete", "backups", len(oldBackups)) for _, backup := range oldBackups { logger.V(1).Info("deleting old backup", "backup", backup) if err := backupStorage.Delete(ctx, backup); err != nil { logger.Error(err, "error removing old backup", "backup", backup) } } if err := cleanupFile(backupTargetFile, logger.WithName("cleanup")); err != nil && os.IsNotExist(err) { logger.Error(err, "error cleaning up target file", "file", backupTargetFile) os.Exit(1) } }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.