我正在尝试创建一个CronJob,它正在创建一个文件并向其中写入一些字符串。该代码在按常规go代码运行时可以正常工作。当Cronjob运行时,代码本身也会执行(我检查了/ var / log / syslog并让Print用„ fmt.Print(“some string”)来完成)
问题是执行Cronjob时未创建我要创建的文件(我是服务器的root用户,所以“crontab -e”应该具有足够的权限吗?)

码:

package main

import (
    "os"
    "path/filepath"
    "fmt"
    "github.com/Sirupsen/logrus"

)
func main() {

absPath, err := filepath.Abs("loggy.txt")
if err != nil {
    fmt.Print("Error\n")
}


file, err := os.OpenFile(absPath, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
    fmt.Print("Error\n")
}


var loggy logrus.Logger
loggy.Out = file
loggy.Level = logrus.DebugLevel
formatter := &logrus.TextFormatter{}
formatter.ForceColors = true
formatter.FullTimestamp = true
loggy.Formatter = formatter

loggy.Warn("Test")

}

crontab -e:
*/01   *  *  *  * /root/PathToFile/CronJob/./CronJob

任何帮助表示赞赏

最佳答案

因此,当在Cronjob中执行时或在相反情况下执行go时,会将当前目录调整为crontab目录

关于go - 在CronJob中运行时,代码无法创建文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44263796/

10-12 04:45