package main import ( "flag" "log" "os" "path/filepath" "strconv" "time" ) func main() { log.SetFlags(log.LstdFlags | log.Lshortfile) var dir = flag.String("d", "", "File path") flag.Parse() if *dir == "" { log.Fatal("File path is empty.") } var content []byte contentSize := 1024*1024*10 for i := 0; i < contentSize; i++ { content = append(content, []byte("A")...) } log.Println("File content size: ", contentSize) // Write data go func() { var count int for { func() { count++ f, err := os.OpenFile(filepath.Join(*dir, strconv.Itoa(count) + ".log"), os.O_CREATE|os.O_TRUNC|os.O_RDWR, os.ModePerm) if err != nil { log.Fatal(err) } defer f.Close() if _, err = f.Write(content); err != nil { log.Fatal(err) } _ = f.Sync() log.Printf("Create file %d.log", count) }() time.Sleep(time.Second) } }() // Delete file after a few time //go func() { // var count int // for { // count++ // time.AfterFunc(2*time.Second, func() { // if err := os.Remove(filepath.Join(*dir, strconv.Itoa(count) + ".log")); err != nil { // log.Fatal(err) // } // log.Printf("Remove file %d.log", count) // }) // } //}() time.Sleep(time.Second*86400) }