我编写了一个 .jar 文件,该文件应该每天运行一次,与 Google App Engine 进行交互。当我从计算机上运行它时,它运行良好并创建一个详细说明一些统计信息的日志文件。我将其转移到 Raspberry Pi 上,它通过 crontab 运行。
第一次运行它时,系统日志中出现权限被拒绝的情况。我读到使用“sudo crontab -e”可以修复该问题。现在我不再收到错误,但我的日志文件没有出现。
以下是创建日志文件的代码部分:
PrintWriter writer = new PrintWriter("log" + format.format(date) + ".txt");
writer.println("Total Themes: " + numThemes + "\r\n");
writer.println("Active Themes: " + numActiveThemes + "\r\n");
writer.println("Inactive Themes: " + numInactiveThemes + "\r\n");
writer.println("Total Sales: " + numSales + "\r\n");
writer.println("Total Price Changes: " + numPriceChanges + "\r\n");
writer.println("Total Time: " + seconds + " seconds" + "\r\n");
writer.close();
计划任务:
0 2 * * * java -jar /mnt/data/scripts/updater_pricing.jar
我遗漏了有关 Windows 切换的哪些内容,从而阻止了日志文件的创建?
编辑:我可以.jar
手动运行文件(使用sudo java -r /mnt/data/scripts/updater_pricing.jar
),然后创建日志文件。但不能使用 cron。
编辑2:/etc/log/syslog
有:
Feb 8 21:46:01 raspberrypi /USR/SBIN/CRON[10841]: (root) CMD (java -jar /mnt/data/scripts/updater_pricing.jar
答案1
搞清楚了。之所以发送这封电子邮件,是因为我有几行System.out.println()
日志文件正在创建,但位置不对。我不得不将原始文件行修改为:
PrintWriter writer = new PrintWriter("/mnt/data/scripts/" + "log" + format.format(date) + ".txt");