`
cfyme
  • 浏览: 276618 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

串行执行批量任务脚本

 
阅读更多

前阵放假时候,帮人跑实验,需要在一台服务器上跑一堆java实验程序。

为了实验结果的公正性,要保证每次只跑一个实验,也就是需要串行的跑完所有java程序。

刚开始的时候,我每跑一个程序,隔一段时间去服务器上检查一下是否跑完,需要时时留意,实在有点不爽,人也不能走开。

于是写了个shell脚本:串行的去执行一批java程序任务列表。

过程如下:

1.新建任务列表

以实验为例的tasklist.txt:

Java代码  收藏代码
  1. java -cp fastPPV0318.jar -Xms512m -Xmx1024m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.preprocess.hubselection.HybridG1O1Selection 1 1 dblp > dblpHybridG1O1Selection.log  
  2. java -cp fastPPV0318.jar -Xms512m -Xmx1024m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.preprocess.hubselection.HybridG1O1Selection 0.5 1 dblp > dblpHybridG1O1Selection.log  
  3. java -cp fastPPV0318.jar -Xms512m -Xmx1024m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.preprocess.hubselection.HybridG1O1Selection 1 2 dblp > dblpHybridG1O1Selection.log  
  4. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.execution.LocalPPVSerializerMain  > dblpHybridG1O1LocalPPV.log  
  5. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG0.5O1.properties fanwei.ppv.execution.LocalPPVSerializerMain  > dblpHybridG0.5O1LocalPPV.log  
  6. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O2.properties fanwei.ppv.execution.LocalPPVSerializerMain  > dblpHybridG1O2LocalPPV.log  
  7. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.execution.OnlineQueryProcess > dblpHybridG1O1Query.log  
  8. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG0.5O1.properties fanwei.ppv.execution.OnlineQueryProcess > dblpHybridG0.5O1Query.log  
  9. java -cp fastPPV0318.jar -Xms1024m -Xmx2048m  -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O2.properties fanwei.ppv.execution.OnlineQueryProcess > dblpHybridG1O2Query.log  

 

2.编写串行批量运行脚本

batchRun.sh:

Java代码  收藏代码
  1. #!/bin/bash  
  2. if [ "$1" = "" ] ; then  
  3.    echo "Bad command. No tasklist file been appointed. Right format: $0 [tasklist.txt]"  
  4.    exit 1  
  5. fi  
  6. tasks=`cat $1|wc -l`  
  7. echo "total tasks founded:$tasks"  
  8. echo "Now begin running....."  
  9. cat $1|while read line  
  10. do  
  11. tasks=`jps|wc -l`  
  12. while [ $tasks -gt 1 ]  
  13.   do  
  14.     sleep 20  
  15.         echo "task is running"  
  16.     tasks=`jps|wc -l`  
  17.   done  
  18. $line &  
  19. echo "running $line"  
  20. sleep 5  
  21. done  
  22. echo "end."  

以上脚本只是简单的一个脚本,会依次读取tasklist.txt里的任务,并每隔20秒检查一下是否有java程序在运行,如果没有,则执行当前读取到的任务,否则循环检查。

3.执行脚本

./batchRun.sh tasklist.txt > batchRun.log &

 

OK,白天可以和朋友出去玩了,晚上回来检查结果。

脚本很简单,也不完美,有很大局限性,不过让机器去胜任,能很大提升效率。

 

转载地址:http://singleant.iteye.com/blog/1476229

分享到:
评论

相关推荐

    shell的多线程&当前文件夹下批量插入MySQL

    在处理大量并发任务时,多线程可以并发执行任务,避免串行执行的低效,尤其在需要对多个主机进行批量操作或检查时(如SSH、PING等)。在Shell中,我们通常借助命名管道(FIFO)来实现这一目标。 下面通过一个简单的...

    nodejs制作爬虫实现批量下载图片

    下载图片到本地时,最初采用的方法是使用`fs.createWriteStream()`,这虽然简单,但效率低下,因为它是串行执行的。为了加快速度,作者使用了`async`库,特别是`mapSeries`或`map`方法。`async.mapSeries`按顺序执行...

    SMB_Remote_Connection_Refresh_Refresh_cabina1m_batch共享文件加_

    标题中的"SMB_Remote_Connection_Refresh_Refresh_cabina1m_batch共享文件加_"似乎是一个...通过运行批处理脚本,用户可以自动化执行文件夹状态检查、权限设置和密码清理等任务,大大简化了日常的网络资源管理工作。

    同时对多台微机进行网络连通测试

    在提供的文件名"ping路由.bat"中,我们可以推测这是一个用于批量执行PING测试的批处理程序。在批处理脚本中,我们可以列出所有要测试的主机,然后对每一台依次执行PING命令,收集并显示结果。 批量测试的具体实现...

    批处理基础教程-及其应用

    批处理基础教程旨在帮助用户掌握批处理脚本的编写...学习这些批处理命令,结合实际需求,你可以创建复杂的自动化脚本,例如批量重命名文件、自动备份数据、系统维护等。通过不断实践和探索,你将成为一名批处理高手。

    C6678 SPI多核烧写工具.rar

    另一个文件"Multi_core_boot_gen"很可能是一个可执行文件或脚本,它是实际的一键生成烧写文件的工具。通过运行这个程序,用户可以方便地创建包含所有核心代码的SPI烧写映像,从而避免手动配置和烧写每个核心的麻烦。...

    批处理资料(含常用源代码)

    这种技术尤其适用于需要反复执行相同操作或者需要串行执行多个命令的情况,极大地提高了工作效率。 批处理的基础入门知识主要包括以下几个方面: 1. **批处理文件格式**:批处理文件通常是文本文件,扩展名为.bat...

    串口工具SecureCRT

    它支持VBS、JScript和Perl脚本,可以编写自动化脚本来执行批量任务,如文件传输、命令执行等,极大地减轻了重复劳动的负担。 总的来说,SecureCRT凭借其强大的功能、出色的稳定性和易用性,成为IT专业人士进行串口...

    LSF简易使用手册

    可以创建包含`bsub`参数的脚本来批量提交相同参数的作业。例如: ```bash #BSUB –n 16 #BSUB –q QN_Norm #BSUB –o mytest.out –a mpich_gm mpirun.lsf ./mytest ``` 提交脚本使用`bsub 脚本名`。 ### ...

    远程调用linux命令的demo

    “工具”标签可能暗示了文章会提到一些现成的工具,如SSH客户端(如OpenSSH、PuTTY)、远程管理工具(如Ansible、SaltStack、Chef等),这些工具可以简化远程命令执行的过程,并提供批量管理和配置功能。 基于这些...

    SSH Secure Shell_串口和ssh_footfk9_ssh工具_shell和ssh_SecureShell_

    6. **脚本和自动化**:SSH工具还常常支持脚本化和自动化,这意味着可以通过编写脚本来批量执行远程任务,例如系统维护、备份等。这对于IT管理员来说非常有用,可以提高效率并减少错误。 7. **公钥认证**:SSH支持...

    gateway_factory.rar

    描述中提到的“shell脚本调用linux应用,批量快速测试多个串口和网络”,说明这个压缩包内包含了至少一个Shell脚本,该脚本设计用于在Linux环境中运行。它的主要功能是自动化测试串行端口(serial ports)和网络连接...

    一个非常有用的 WMI tool 可查找USB to Serial adaptors程序源码

    通过WMI,开发者可以编写脚本或应用程序来执行如监控系统性能、管理系统设置、追踪事件日志等任务。 **USB to Serial适配器与WMI的关联** USB到串行适配器是一种硬件设备,它允许计算机通过USB接口连接到使用串行...

    NeoProgrammer-2.2.0.10

    例如,通过编写脚本或利用第三方库,用户可以自动化执行CH341A芯片的编程任务,实现批量烧录或复杂的数据交换。 在软件/插件的标签下,我们可以理解NeoProgrammer可能不仅限于独立运行,它可能还支持与其他开发环境...

    电子-SecureCRTx86.rar

    用户可以通过VBS(Visual Basic Script)或Python编写脚本,实现自动化任务,如批量执行命令、文件传输等,极大地提升了工作效率。宏功能则允许录制和回放一系列操作,对于重复性的任务,可以避免手动操作的繁琐。 ...

    DataX Web分布式数据同步工具-其他

    33、对RDBMS数据源增加批量任务创建功能,选择数据源,表即可根据模板批量生成DataX同步任务; 34、JSON构建增加ClickHouse数据源支持; 35、执行器CPU.内存.负载的监控页面图形化; 36、RDBMS数据源增量抽取增加...

    Arduino-Minion-Programmer:一次编写大量 Arduino 的 Python 小脚本

    这个工具使得用户可以通过编写 Python 脚本来批量管理、更新或控制 Arduino 控制器,而无需反复手动使用 Arduino IDE。这样的自动化能力对于那些需要在多个 Arduino 设备上执行相同操作,或者需要频繁更新固件的...

    工具SecureCRT

    6. **脚本与自动化**:SecureCRT支持VBS(Visual Basic Script)和Python脚本,可以自动化重复性的任务,如批量执行命令、登录多个服务器等,极大地提升了工作效率。 7. **串行连接**:除了网络连接,SecureCRT还...

    TTERMPRO带有SSH绿色软件

    4. **自动化脚本执行**:TTERMPRO可能支持脚本执行,用户可以编写自动化脚本来批量处理重复任务,提高工作效率。 总的来说,TTERMPRO以其全面的连接方式、安全的SSH支持以及便携的特性,成为了IT专业人士在远程管理...

    Multiport_download_exe_v5.1224.00.00

    8. **脚本支持**:高级用户可能需要通过脚本自动化复杂的下载任务,因此软件可能包含脚本语言支持或API接口。 9. **性能优化**:优化的算法和数据结构能够最大化利用硬件资源,加快下载速度。 10. **日志分析**:...

Global site tag (gtag.js) - Google Analytics