Shell批量任务执行脚本

批量执行任务的 Shell 脚本,逻辑清晰、扩展性也不错,适合你拿来就改,跑各种重复的命令。支持命令行传参,像日期、任务列表、输出日志路径这些都能灵活配置,脚本里还有日志目录、任务列表排序执行、结果记录等常用功能。

批量任务执行的需求挺常见,比如你想每天早上跑一堆 SQL、重启几个服务,或者整理一下日志文件,这脚本就挺管用的。你甚至可以配个cron,每天定时跑都行。

脚本一开头就用#!/bin/sh指定了解释器,用date命令拿当前时间,像这样:

dtime=`date +"%Y%m%d%H%M%S"`
dt=`date +"%Y%m%d"`

这个dtime是秒级时间戳,命名文件用挺合适的。

再看配置那块,根据flag变量值去选不同的数据库和目录,灵活:

flag=1
if [ $flag -eq 1 ]; then
  lfile="/logfile/log/trace/odsst/$dt/"
  db="esopdb"
else
  lfile="$HOME/odsst/$dt/"
  db="shcrm2"
fi

参数解析用getopts,支持-t时间、-f文件标志、-p附加参数、-l列表文件,常规但好用。

任务执行前会检查日志目录在不在,没有就创建一个,还挺细致:

trace="./trace"
if [ ! -d "$trace" ]; then
  mkdir ./trace
  chmod 777 ./trace
fi

主流程里,会读取任务列表文件、过滤内容,统一执行命令并记录输出,执行结果会写进一个结果文件里,像:res20250530093000.txt,方便后期查日志。

如果你手头也有一堆定期要跑的脚本、任务文件,不妨把它们整理成列表格式,用这个脚本批量跑一下,效率一下子就上来了。想参考的话,文章里还提了几个相关资源,像IPA 打包脚本批量改 properties也都能看看。

txt 文件大小:6.42KB