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
文件大小:
评论区