1
0

logrotate.go 663 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package logrotate
  2. import (
  3. "github.com/0xJacky/Nginx-UI/settings"
  4. "github.com/uozi-tech/cosy/logger"
  5. "os/exec"
  6. "strings"
  7. )
  8. func Exec() {
  9. if !settings.LogrotateSettings.Enabled {
  10. return
  11. }
  12. logger.Info("logrotate start")
  13. defer logger.Info("logrotate end")
  14. cmd := strings.Split(settings.LogrotateSettings.CMD, " ")
  15. if len(cmd) == 0 {
  16. return
  17. }
  18. var (
  19. name string
  20. args = make([]string, 0)
  21. )
  22. if len(cmd) > 0 {
  23. name = cmd[0]
  24. }
  25. if len(cmd) > 1 {
  26. args = cmd[1:]
  27. }
  28. out, err := exec.Command(name, args...).CombinedOutput()
  29. if err != nil {
  30. logger.Error(err, string(out))
  31. return
  32. }
  33. if len(out) > 0 {
  34. logger.Debug(string(out))
  35. }
  36. }