您的位置:首页 > 运维架构 > Shell

shell 批量操作 多线程

2016-09-29 16:26 120 查看
1.删除文件

小于10的文件输出格式为01.txt,02.txt

for((i=2;i<=3;i++)); do
if [[ $i -gt 10 ]];
then echo "$i.txt";
else
rm -f "0$i.txt";
fi;
done;


-gt 是大于

2.解压文件

由于app目录有时会存在个别py文件,而压缩文件里面全是pyc文件
删除app整个目录是防止py文件会把pyc文件给覆盖

for i in $(seq 55); do
echo "reloadPyc Svr$i";cd /Svr$i/;rm -rf app;sleep 1;tar -zxvf 1.tar.gz >/dev/null 2>&1
done;


3.调用接口重新加载配置

for((port=100;port<=10000;i=i+1000)); do
wget 'http://167.498.22.959:$port/reload' -O /tmp/result.txt;sleep 1;
done;


4.多线程处理

一共是55个任务,分3+1即4个线程去处理

serCount=55
progress=3

eachCnt=$(expr $serCount / $progress);
progress=$(expr $progress + 1);

for proCnt in $(seq $progress); do
{
for i in $(seq $eachCnt); do
j=$(expr $i - 1);
j=$(expr $j \* $progress);
j=$(expr $j + $proCnt);
if [[ $serCount -ge $j ]];then
echo "zzjbSvr$j";
fi;
done;
}&
done;

wait
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: