Files
d-eyes/basicinfo/info/crontab_linux.go

82 lines
1.7 KiB
Go
Raw Normal View History

2023-11-06 16:31:16 +08:00
package info
import (
"fmt"
"io/ioutil"
"strings"
"github.com/gookit/color"
)
var resultData []string
func DisplayPlanTask() {
Crontab_file()
Crontab_dir()
DisplayCronTab(resultData)
}
// single crontab file
func Crontab_file() {
dat, err := ioutil.ReadFile("/etc/crontab")
if err != nil {
return
}
cronList := strings.Split(string(dat), "\n")
for _, info := range cronList {
if strings.HasPrefix(info, "#") || strings.Count(info, " ") < 6 {
continue
}
resultData = append(resultData, info)
}
}
// dir crontab files
func Crontab_dir() {
dir_list := []string{"/var/spool/cron/", "/var/spool/cron/crontabs/"}
for _, dirTmp := range dir_list {
dir, err := ioutil.ReadDir(dirTmp)
if err != nil {
continue
}
for _, f := range dir {
if f.IsDir() {
continue
}
dat, err := ioutil.ReadFile(dirTmp + f.Name())
if err != nil {
continue
}
cronList := strings.Split(string(dat), "\n")
for _, info := range cronList {
if strings.HasPrefix(info, "#") || strings.Count(info, " ") < 5 {
continue
}
info = info + " (user '" + f.Name() + "' created this task.)"
resultData = append(resultData, info)
}
}
}
}
func DisplayCronTab(cronTab []string) {
color.Greenp("==============================================================================================\n")
if len(cronTab) == 0 {
fmt.Println("There is no crontab task in this host.")
return
}
taskSum := 0
for _, item := range cronTab {
taskSum++
color.Greenp("* task", taskSum)
fmt.Println()
fmt.Println(item)
color.Greenp("==============================================================================================\n")
}
}
func GetCronTab() []string {
Crontab_file()
Crontab_dir()
return resultData
}