mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-12 08:26:50 +08:00
41 lines
750 B
Go
41 lines
750 B
Go
package csvexport
|
|
|
|
import (
|
|
"encoding/csv"
|
|
"os"
|
|
|
|
"github.com/1Panel-dev/1Panel/agent/app/dto"
|
|
"github.com/1Panel-dev/1Panel/agent/constant"
|
|
)
|
|
|
|
func ExportSSHLogs(filename string, logs []dto.SSHHistory) error {
|
|
file, err := os.Create(filename)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer file.Close()
|
|
|
|
writer := csv.NewWriter(file)
|
|
defer writer.Flush()
|
|
|
|
if err := writer.Write([]string{"IP", "Area", "Port", "AuthMode", "User", "Status", "Date"}); err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, log := range logs {
|
|
record := []string{
|
|
log.Address,
|
|
log.Area,
|
|
log.Port,
|
|
log.AuthMode,
|
|
log.User,
|
|
log.Status,
|
|
log.Date.Format(constant.DateTimeLayout),
|
|
}
|
|
if err := writer.Write(record); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|