Я записал .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();
Crontab:
0 2 * * * java -jar /mnt/data/scripts/updater_pricing.jar
Что я пропускаю о переключателе из Windows, который предотвращает создание файла журнала?
Править: Я могу работать .jar
зарегистрируйте вручную (использование sudo java -r /mnt/data/scripts/updater_pricing.jar
) и файл журнала создается. Не работа w/cron все же.
Edit2: /etc/log/syslog
имеет:
Feb 8 21:46:01 raspberrypi /USR/SBIN/CRON[10841]: (root) CMD (java -jar /mnt/data/scripts/updater_pricing.jar
Понятый это. Электронное письмо посылалось, потому что у меня были некоторые строки System.out.println()
, файлы журнала создавались, только в неправильном месте. Я должен был изменить исходную строку файла, чтобы быть:
PrintWriter writer = new PrintWriter("/mnt/data/scripts/" + "log" + format.format(date) + ".txt");