main.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. "flag"
  4. "log"
  5. "os"
  6. "path/filepath"
  7. "strconv"
  8. "time"
  9. )
  10. func main() {
  11. log.SetFlags(log.LstdFlags | log.Lshortfile)
  12. var dir = flag.String("d", "", "File path")
  13. flag.Parse()
  14. if *dir == "" {
  15. log.Fatal("File path is empty.")
  16. }
  17. var content []byte
  18. contentSize := 1024*1024*10
  19. for i := 0; i < contentSize; i++ {
  20. content = append(content, []byte("A")...)
  21. }
  22. log.Println("File content size: ", contentSize)
  23. // Write data
  24. go func() {
  25. var count int
  26. for {
  27. func() {
  28. count++
  29. f, err := os.OpenFile(filepath.Join(*dir, strconv.Itoa(count) + ".log"), os.O_CREATE|os.O_TRUNC|os.O_RDWR, os.ModePerm)
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. defer f.Close()
  34. if _, err = f.Write(content); err != nil {
  35. log.Fatal(err)
  36. }
  37. _ = f.Sync()
  38. log.Printf("Create file %d.log", count)
  39. }()
  40. time.Sleep(time.Second)
  41. }
  42. }()
  43. // Delete file after a few time
  44. //go func() {
  45. // var count int
  46. // for {
  47. // count++
  48. // time.AfterFunc(2*time.Second, func() {
  49. // if err := os.Remove(filepath.Join(*dir, strconv.Itoa(count) + ".log")); err != nil {
  50. // log.Fatal(err)
  51. // }
  52. // log.Printf("Remove file %d.log", count)
  53. // })
  54. // }
  55. //}()
  56. time.Sleep(time.Second*86400)
  57. }