从cronjob上运行的java jar发送电子邮件中的results.txt文件

时间:2014-01-15 22:03:42

标签: java unix

我有一个在cronjob上运行的java jar,它将结果 - {date} .txt文件输出到目录中,不会通过电子邮件发送该文件的内容。有没有办法告诉cronjob一旦jar运行完毕就通过电子邮件发送该文件?

或者有没有办法设置echo以通过电子邮件发送目录中的最新文件?

我还尝试让我的java jar只打印results.txt名称而没有日期,但无法弄清楚如何做到这一点。如果可以做到这一点,则不需要第一个解决方案。

private static PrintStream makeOutputStream() throws FileNotFoundException {
    String filename = "results.txt";
    return new PrintStream(new FileOutputStream(filename));
}

public static void main( String[] args ) throws IOException, ParseException, InterruptedException {
    Options options = new Options();
    options.addOption("o", false, "Write output to stdout. By default, output is written to a file named results-[date-time].txt.");
    options.addOption("s", true, "Use the given url as a base for the product page url. Default is " + SHOP_BASE_URL_DEFAULT);
    CommandLineParser parser = new GnuParser();
    CommandLine cmd = parser.parse(options, args);

    Checker checker = new Checker(cmd.getOptionValue("s", BASE_URL_DEFAULT));

     PrintStream stream = System.out;
     if (cmd.hasOption("o")) {
         stream = makeOutputStream();
     }
}

1 个答案:

答案 0 :(得分:0)

在bash中创建脚本并将其添加到该脚本运行中的crontab:

  1. 你的java程序
  2. 邮件发送命令示例'mail -s“$(echo -e”title \ nContent-Type:text / html“)”$ MAILING_LIST< report_ $ CUR_DATE *'