func main() { _, err := io.WriteString(file, "backupcommand running....\n") if err != nil { log.Println(err.Error()) } defer closeLog() getEnvVars() s := backup.BackupStatus{} eDuration := time.Since(startTime) s.StartTime = startTime.String() s.StartTime = startTime.String() s.ElapsedTime = eDuration.String() s.Status = "initializing" s.BackupSize = du() sendStats(s) //kick off stats reporting in a separate thread go stats("hi") io.WriteString(file, "giving DNS time to register the backup job....sleeping for 7 secs") time.Sleep(7000 * time.Millisecond) //perform the backup backupfunc("end") //send final stats to backup finalstats("end") }
//report stats back to the cpm-admin for this backup job func finalstats(str string) { //connect to backupserver on cpm-admin //send stats to backup stats := backup.BackupStatus{} eDuration := time.Since(startTime) stats.StartTime = startTime.String() stats.ElapsedTime = eDuration.String() stats.Status = "completed" stats.BackupSize = du() sendStats(stats) io.WriteString(file, "final stats here\n") }
//report stats back to the cpm-admin for this backup job func stats(str string) { for true { io.WriteString(file, "sending stats...\n") io.WriteString(file, "sleeping for 7 secs\n") time.Sleep(7000 * time.Millisecond) stats := backup.BackupStatus{} eDuration := time.Since(startTime) stats.StartTime = startTime.String() stats.StartTime = startTime.String() stats.ElapsedTime = eDuration.String() stats.Status = "running" stats.BackupSize = du() sendStats(stats) } }