【问题标题】:Automate running the runnable java jar using the shell script使用 shell 脚本自动运行可运行的 java jar
【发布时间】:2013-05-05 12:41:36
【问题描述】:

我正在像这样从命令提示符运行一个可运行的 java jar-

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.1.txt

所以每当我想运行上面的 jar 时,我通常会从上面的命令提示符中运行上面的整个命令,所以目前对我来说这是一个手动过程。

现在我想使用 shell 脚本自动化这件事,这样我就可以从 shell 脚本中传递这些参数,然后连续执行上述命令,而无需从我这边进行任何更改。

我想配置的是-

  1. NUMBER_OF_THREADS
  2. TOTAL_RUNNING_TIME
  3. cassandra_read_prod_netflix_1.10.1.txt

上面的第三点是它应该继续为我自动更改文件名。举个例子-

假设我第一次运行我的程序,那么我将使用这个配置运行-

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.1.txt

在上述程序完成后,我的 shell 脚本应该再次启动同一个程序,但这次它应该是这样的,文件名已更改-

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.2.txt

在第二种情况下,如果您仔细观察,文件名已从 1.10.1 to 1.10.2 更改。无需我修改,它将继续像这样连续运行。

第三次会是这样-

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.3.txt

是否可以使用 shell 脚本来做这件事?

我将运行我的 shell 脚本的机器操作系统-

rkost@phx7b:~$ uname -a
Linux phx7b 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux

【问题讨论】:

  • 所以,你的脚本应该首先形成命令并执行它。除了文件名之外,其他所有内容看起来都保持不变。您可以让脚本将文件名中的变量部分保存到文件中(或某处),以便下次运行时使用。
  • 是的,我想这就是我需要做的。您能否提供一个示例,因为我对 shell 脚本不太熟悉。

标签: java linux shell automation


【解决方案1】:

你的意思是这样的?

#!/bin/sh

for ((i=0; i<3; i++))
  do
    java -jar CassandraClientReadLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.$i.txt
  done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多