82 lines
1.7 KiB
Go
82 lines
1.7 KiB
Go
|
|
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
|
||
|
|
}
|