我正在尝试创建一个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/