diff --git a/crontabd/main.go b/crontabd/main.go index 3b659c3..1269b3a 100644 --- a/crontabd/main.go +++ b/crontabd/main.go @@ -103,13 +103,29 @@ func loadCronJobs() error { cronExpr := strings.Join(fields[0:5], " ") cmdStr := strings.Join(fields[5:], " ") + cmdStr, err = filepath.Abs(cmdStr) + if err != nil { + logger.Error("Failed to find command: %s", cmdStr) + continue + } + cmdStr = filepath.Clean(cmdStr) + + file, err := os.OpenFile(cmdStr, os.O_RDONLY, 0644) + if err != nil { + logger.Error("Failed to find command: %s", cmdStr) + continue + } + file.Close() + + logger.Info("Adding cron job: %s -> %s", cronExpr, cmdStr) + job := CronJob{ Cron: cronExpr, Command: cmdStr, } // Add the job to cron - _, err := cronRunner.AddFunc(job.Cron, createJobFunc(job)) + _, err = cronRunner.AddFunc(job.Cron, createJobFunc(job)) if err != nil { logger.Error("Failed to add cron job %+v: %v", job, err) continue @@ -124,6 +140,7 @@ func loadCronJobs() error { func createJobFunc(job CronJob) func() { return func() { + logger.Info("Executing command: %s", job.Command) cmd := exec.Command(job.Command) output, err := cmd.CombinedOutput() if err != nil {