2017-05-30 122 views
-2

我正在尝试创建一个CronJob,它正在创建一个文件并向其中写入一些字符串。代码在正常运行代码运行时工作。当代码本身在作为Cronjob运行时执行(我选中了/ var/log/syslog并让它打印一些东西,用“fmt.Print(”some string“)) 问题是我想创建的文件没有创建在执行的cronjob时(我在我的服务器根如此“crontab -e命令”应该有足够的权限,不应该吗?)代码不会在CronJob中运行时创建文件

代码:

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 

任何帮助表示赞赏

+2

你怎么知道该文件并未创建其他方式执行时调整当前目录下的crontab的目录。也许它实际上是创建的,但不是你认为的地方... – Volker

+0

你是对的人 - 非常感谢 一切都已经创建在“/ root /” 我想让路径绝对有帮助(调整实际的代码) – Lotoras

回答

0

,所以还是在一个cronjob或圆形regardingly

+0

Go不会“调整”任何东西,它会从所提供的工作目录开始。 – JimB

相关问题