diff --git a/audit/internal/app/support_bundle.go b/audit/internal/app/support_bundle.go index e942d86..12ba6f0 100644 --- a/audit/internal/app/support_bundle.go +++ b/audit/internal/app/support_bundle.go @@ -33,7 +33,15 @@ var supportBundleCommands = []struct { {name: "system/ip-route.txt", cmd: []string{"ip", "route"}}, {name: "system/mount.txt", cmd: []string{"mount"}}, {name: "system/df-h.txt", cmd: []string{"df", "-h"}}, - {name: "system/dmesg-tail.txt", cmd: []string{"sh", "-c", "dmesg | tail -n 200"}}, + {name: "system/dmesg.txt", cmd: []string{"dmesg"}}, +} + +var supportBundleOptionalFiles = []struct { + name string + src string +}{ + {name: "system/kern.log", src: "/var/log/kern.log"}, + {name: "system/syslog.txt", src: "/var/log/syslog"}, } const supportBundleGlob = "bee-support-*.tar.gz" @@ -77,6 +85,9 @@ func BuildSupportBundle(exportDir string) (string, error) { return "", err } } + for _, item := range supportBundleOptionalFiles { + _ = copyOptionalFile(item.src, filepath.Join(stageRoot, item.name)) + } if err := writeManifest(filepath.Join(stageRoot, "manifest.txt"), exportDir, stageRoot); err != nil { return "", err } @@ -184,6 +195,24 @@ func writeCommandOutput(dst string, cmd []string) error { return os.WriteFile(dst, raw, 0644) } +func copyOptionalFile(src, dst string) error { + in, err := os.Open(src) + if err != nil { + return err + } + defer in.Close() + if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { + return err + } + out, err := os.Create(dst) + if err != nil { + return err + } + defer out.Close() + _, err = io.Copy(out, in) + return err +} + func writeManifest(dst, exportDir, stageRoot string) error { if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { return err