2017-05-30 7 views
-2

Ich versuche einen CronJob zu erstellen, der eine Datei erstellt und eine Zeichenfolge an ihn schreibt. Der Code funktioniert, wenn er als normaler go-Code ausgeführt wird. Auch der Code selbst wird ausgeführt, wenn er als Cronjob ausgeführt wird (ich habe/var/log/syslog überprüft und etwas mit "fmt.Print (" some ") drucken lassen) Das Problem ist, dass die Datei, die ich erstellen möchte, nicht erstellt wird wenn der Cronjob ausgeführt wird (I root auf meinem Server bin so „-e crontab“ sollte genügend Berechtigungen verfügen sollte es nicht?)Der Code erstellt keine Dateien, wenn er in CronJob ausgeführt wird.

Code:

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 

Jede Hilfe ist willkommen

+2

ausgeführt wird, wie Sie die Datei wissen wird nicht erstellt. Vielleicht ist es ja _is_ erstellt, aber nicht wo du denkst ... – Volker

+0

Mann du hast recht - vielen Dank Alles wurde unter "/ root /" erstellt Ich dachte der Pfad würde absolut helfen (den eigentlichen Code anpassen) – Lotoras

Antwort

0

Also passt das aktuelle Verzeichnis in das Verzeichnis von crontab, wenn sie in einem Cronjob oder umgekehrt regardingly

+0

Go "passt" nichts an, es startet im angegebenen Arbeitsverzeichnis. – JimB

Verwandte Themen