前阵放假时候,帮人跑实验,需要在一台服务器上跑一堆java实验程序。
为了实验结果的公正性,要保证每次只跑一个实验,也就是需要串行的跑完所有java程序。
刚开始的时候,我每跑一个程序,隔一段时间去服务器上检查一下是否跑完,需要时时留意,实在有点不爽,人也不能走开。
于是写了个shell脚本:串行的去执行一批java程序任务列表。
过程如下:
1.新建任务列表
以实验为例的tasklist.txt:
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
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
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
java -cp fastPPV0318.jar -Xms1024m -Xmx2048m -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.execution.LocalPPVSerializerMain > dblpHybridG1O1LocalPPV.log
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
java -cp fastPPV0318.jar -Xms1024m -Xmx2048m -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O2.properties fanwei.ppv.execution.LocalPPVSerializerMain > dblpHybridG1O2LocalPPV.log
java -cp fastPPV0318.jar -Xms1024m -Xmx2048m -Dppv.config=/home/zhufw/fastppv/config/ppv_dblp_30000_hybridG1O1.properties fanwei.ppv.execution.OnlineQueryProcess > dblpHybridG1O1Query.log
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
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:
#!/bin/bash
if [ "$1" = "" ] ; then
echo "Bad command. No tasklist file been appointed. Right format: $0 [tasklist.txt]"
exit 1
fi
tasks=`cat $1|wc -l`
echo "total tasks founded:$tasks"
echo "Now begin running....."
cat $1|while read line
do
tasks=`jps|wc -l`
while [ $tasks -gt 1 ]
do
sleep 20
echo "task is running"
tasks=`jps|wc -l`
done
$line &
echo "running $line"
sleep 5
done
echo "end."
以上脚本只是简单的一个脚本,会依次读取tasklist.txt里的任务,并每隔20秒检查一下是否有java程序在运行,如果没有,则执行当前读取到的任务,否则循环检查。
3.执行脚本
./batchRun.sh tasklist.txt > batchRun.log &
OK,白天可以和朋友出去玩了,晚上回来检查结果。
脚本很简单,也不完美,有很大局限性,不过让机器去胜任,能很大提升效率。
分享到:
相关推荐
脚本最后计算运行时间,提供了一种监控任务执行情况的方式。 总结起来,虽然Shell本身不支持多线程,但我们可以通过FIFO文件和进程间的通信来模拟多线程行为,实现批量处理任务,例如在当前目录下批量插入MySQL...
6. **脚本和自动化**:SSH工具还常常支持脚本化和自动化,这意味着可以通过编写脚本来批量执行远程任务,例如系统维护、备份等。这对于IT管理员来说非常有用,可以提高效率并减少错误。 7. **公钥认证**:SSH支持...
描述中提到的“shell脚本调用linux应用,批量快速测试多个串口和网络”,说明这个压缩包内包含了至少一个Shell脚本,该脚本设计用于在Linux环境中运行。它的主要功能是自动化测试串行端口(serial ports)和网络连接...
5. **SaltStack**: SaltStack 是一种远程执行引擎,用于配置管理、任务执行和状态管理,同样基于SSH进行通信。 6. **Chef**: Chef是另一个自动化基础设施管理工具,通过Ruby DSL(领域特定语言)编写配置脚本,...
它支持VBS、JScript和Perl脚本,可以编写自动化脚本来执行批量任务,如文件传输、命令执行等,极大地减轻了重复劳动的负担。 总的来说,SecureCRT凭借其强大的功能、出色的稳定性和易用性,成为IT专业人士进行串口...
用户可以通过VBS(Visual Basic Script)或Python编写脚本,实现自动化任务,如批量执行命令、文件传输等,极大地提升了工作效率。宏功能则允许录制和回放一系列操作,对于重复性的任务,可以避免手动操作的繁琐。 ...
15、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔; 16、运行报表:支持实时查看运行数据,以及调度报表,如调度日期分布图,调度成功分布图等...
4. **自动化脚本执行**:TTERMPRO可能支持脚本执行,用户可以编写自动化脚本来批量处理重复任务,提高工作效率。 总的来说,TTERMPRO以其全面的连接方式、安全的SSH支持以及便携的特性,成为了IT专业人士在远程管理...
总的来说,SecureCRT是一款强大且灵活的终端工具,无论是在日常的服务器维护、远程故障排查,还是在自动化任务执行中,都能提供高效且安全的解决方案。其便携版(SecureCRTPortable)则让用户可以在任何电脑上轻松...
通过使用内置的VBS(Visual Basic Script)或者宏命令,用户可以编写脚本来实现自动化任务,如批量登录、执行命令、传输文件等,这在日常运维工作中能够大大节省时间。 压缩包中的"DT-5001~DT-5002~DT-5003串口驱动...
此外,SecureCRT还具有脚本自动化能力,支持批处理命令,用户可以通过编写脚本来执行一系列操作,如自动登录、执行命令、传输文件等,这对于日常维护工作或是批量处理任务非常有用。同时,它还支持VT100、ANSI和...
此外,它还支持批处理脚本,可以自动化执行一系列命令,这对于批量操作或定时任务非常有用。 4. **会话同步**:在多窗口同时进行操作时,SecureCRT的会话同步功能允许用户在一个窗口中输入命令,其他窗口会自动执行...
除此之外,SecureCRT还具备脚本自动化功能,用户可以通过编写批处理脚本自动化执行一系列命令,这对于日常维护工作和批量任务处理来说非常有用。此外,它支持自定义颜色主题和字体设置,可以根据个人喜好调整终端...
此外,SecureCRT支持脚本自动化,用户可以通过编写VBS或Python脚本来执行重复的任务,如批量登录、执行命令或传输文件,大大提升了工作效率。对于系统管理员来说,这一特性尤其实用。 在安全方面,SecureCRT支持...
5. **脚本支持**:支持批处理命令和脚本,可以自动化执行重复任务。 6. **会话共享**:用户可以将多个会话保存并分享,便于团队协作。 **SecureFX** SecureFX是一款文件传输客户端,专为SecureCRT用户设计,提供...
SecureCRT支持批处理脚本,用户可以通过VBS、Python等脚本语言编写自动化任务,如批量执行命令、传输文件等,提高工作效率。 ### 6. 文件传输 通过内置的SCP(Secure Copy)和SFTP(SSH File Transfer Protocol)...
通过内置的VBS(Visual Basic Script)或外部脚本语言,用户可以编写自定义脚本来自动执行重复性任务,如定时执行命令、批量上传文件等。这对于需要频繁进行系统维护或自动化测试的用户来说,极大地减轻了工作负担。...
编写Shell脚本可以实现批量创建和删除用户。例如,创建30个名为student01至student30的用户,用户组为class1,可以编写一个简单的Shell脚本,通过for循环实现用户添加。删除用户只需将脚本中的useradd命令替换为...
4. **脚本自动化**:支持批处理命令和脚本,可以自动化执行重复性的任务,如批量登录服务器进行系统维护。 5. **颜色主题和字体设置**:提供多种颜色主题和字体选择,以适应不同的视觉需求。 6. **会话管理**:可以...
6. 自动化脚本:SecureCRT支持VBS、JScript和Perl脚本,可以自动化执行一系列命令,例如批量登录、执行系统维护任务等,极大提升了工作效率。 7. 键绑定:对于习惯使用终端快捷键的用户,SecureCRT允许自定义键盘...