Ensure command exists before trying to run
This commit is contained in:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user