我的第一个shell脚本

原创 2017年01月03日 20:08:05

用于更新所有账号的各种统计信息,由于数据量过大,一次更新全部账号对服务器的压力过大,容易执行超时,甚至造成阻塞。

所以采取按照用户ID分批次更新的方法,一次更新100个用户,不仅减轻了服务器的压力,总的执行时间反而比一次性全部更新要快。

#!/usr/bin/env bash

logPwd='/home/wangsai/log/update_stat_count.log'

# 获取起始Id和结束Id,返回的是字符串, eg : `"23~2345"`(包含双引号)
res=`curl https://xxx.com/stat/api/get-user-ids`
echo $res >> $logPwd

# 获取字符串总长度
reslen=${#res}

# 获取分隔符位置,用于定位起始Id和结束Id
separateIndex=`expr index $res "~"`

# 最小ID的长度
minIdlen=`expr $separateIndex - 2`

# 最小ID
idMin=`expr substr $res 2 $minIdlen`
echo $idMin >> $logPwd

# 最大ID的长度
maxIdlen=`expr $reslen - $separateIndex - 1`

# 最大ID的起始位置
maxIdIndexBegin=`expr $separateIndex + 1`

# 最大ID
idMax=`expr substr $res $maxIdIndexBegin $maxIdlen`
echo $idMax >> $logPwd

# 循环,每次更新一百个用户数据

while (( $idMin<$idMax ))
do
    # 请求参数
    paramBeginId=$idMin
    paramEndId=`expr $idMin + 100`

    # 拼接Uri
    uri="https://xxx.com/stat/api/update-stat-count?begin_id=${paramBeginId}&end_id=${paramEndId}"
    echo $uri >> $logPwd

    # 发送请求更新数据
    curlRes=`curl $uri`
    echo $curlRes >> $logPwd

    $idMin=$paramEndId
done

# 添加时间,换行
echo -e >> $logPwd
date >> $logPwd
echo -e >> $logPwd

这是第一次写shell脚本,公司没有大神,完全靠自己看文档摸索,写的不好,欢迎大神批评指正。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux 下的第一个Shell脚本程序

先来看看几个问题: 1.什么是Shell? Shell是操作系统的“外壳”。 Shell为用户提供操作计算机的人机交互的接口。 用户对计算机的所有操作以及从计算机获得数据都是由Shell管理的。 ...

第一个shell脚本命令

第一章 shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。...

第一个shell脚本-helloworld

linux shell 只是一个命令解析器,同时支非交互式命令式脚本编程。[^footnote] 因此不同的shell可以用不同的方法解析命令。 csh 语法类似与C语言。但目前不是很流行。 zsh...

第一个shell脚本

自己写的第一个shell脚本,纪念一下^-^

Shell 学习5 - 第一个Shell脚本

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell 脚本,扩展名就用php好了。 输入一些代码: #!/bin/bash...

Shell 教程:第一个shell脚本

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚...

(2)第一个shell脚本和shell变量

第一个shell脚本:打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),比如:hello.sh#!/bin/bash echo "Hello World !"“#!” 是一个约定标记,...

(shell笔记五)第一个shell脚本 helloworld与read命令使用

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),扩展名并不影响脚本执行。看下面这个helloworld.sh的例子:#!/bin/bashecho "hello world!" ec...

Shell学习(1)——第一个shell脚本

本文中所有例子均在ubuntu 13.04(内核3.x)下运行。 程序编辑 打开终端(快捷方式:ctrl+alt+t),输入命令gedit 1.sh,在编辑器中键入以下内容: # # shell sc...

【Shell 编程基础第一部分】第一个Shell脚本HelloShell及一些简单的Shell基础书写与概念;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/shell/759.html          ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)