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也都能看看。
文件大小:6.42KB
评论区