博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell脚本实例
阅读量:3520 次
发布时间:2019-05-20

本文共 2708 字,大约阅读时间需要 9 分钟。

 
代码如下:
#!/bin/bash# clean job info from database which created 60 days ago# before clean data, get offset from bns, then delay [offset * 1800] s# if get offset failed. clean operation will not be executedreadonly MYSQL_HOSTNAME=xxreadonly PORT=xxreadonly USER=xxreadonly PASSWORD=xxreadonly TABLE=xx.xxreadonly TEST_BNS=xxreadonly PROXY_BNS=xxreadonly WORKSPACE=$(cd $(dirname $0); pwd)readonly LOCAL_HOSTNAME=`hostname`readonly HOSTNAME=${LOCAL_HOSTNAME/.baidu.com/}readonly DATE=-60dayreadonly CREATE_TIME="$(date -d $DATE '+%F %H:%M:%S')"readonly DEL_OPERATION="DELETE  FROM $TABLE WHERE create_time < '$CREATE_TIME' limit 1000"readonly SELECT_OPERATION="select count(*) as cnt FROM $TABLE WHERE create_time < '$CREATE_TIME'"#get bns offset, if failed, gen random number: [0-4]offset=-1multiply_factor=1800#record how many data left in databasecount=-1Prompt(){	echo "[$(date '+%D %H:%M:%S')] $@"}ok() {    echo "[ok] ${1}"}#gen random number between [1, 5]randNumber() {    tmp=$RANDOM    offset=$[ tmp % 5 ]}delayTime() {    #here we cannot check $?, which is aways 0    tmp=$(get_instance_by_service "$PROXY_BNS" -o | grep "$HOSTNAME" | awk '{print $2}')    if [ "$tmp"x = ""x ]; then        Prompt "get bns offset failed, clean operation will not be executed.."        exit -1    else        offset=$tmp        Prompt "get bns offset success, bns offset: $offset"    fi}delOperation() {    mysql  -h $MYSQL_HOSTNAME -P$PORT -u$USER -p$PASSWORD -e "${DEL_OPERATION}"}countOperation() {    declare countTmp=`mysql  -h $MYSQL_HOSTNAME -P$PORT -u$USER -p$PASSWORD -e "${SELECT_OPERATION}"`    if [ "$countTmp"x = ""x ]; then        Prompt "count expired job failed, left clean operation will not be executed.."        exit -1    else        count=$(echo $countTmp | awk '{print $2}')        Prompt "count expired job success, [$count] job-data left"    fi}#only reserve data whose create_time within 60 dayscleanExpiredData() {    Prompt "select operation is $SELECT_OPERATION "    Prompt "delete operation is $SELECT_OPERATION "    Prompt "will del jobs where create_time < $CREATE_TIME"    countOperation    while [ $count -gt 0 ]    do        delOperation        countOperation    done}start() {    delayTime    if [ $offset -eq -1 ]; then        Prompt "get factor for delay time failed, please check.."        exit -1    else        ok "get factor for delay time success"    fi    sleeptime=$[ offset * multiply_factor ]    Prompt "clean mysql data after $sleeptime seconds .."    sleep $sleeptime    Prompt "wake up from sleep, start to clean data .."    cleanExpiredData    if [ $? -eq 0 ]; then        ok "clean data success."    else        Prompt "clean data failed .."        exit -1    fi}start

转载地址:http://jkoqj.baihongyu.com/

你可能感兴趣的文章
N9-SQL注入(union注入)
查看>>
N10-sql注入(information_schema注入)
查看>>
N1-Kali虚拟机中SQLmap
查看>>
N11-sql注入(http头注入)
查看>>
N2-sqlmap初使用
查看>>
N12-sql盲注原理以及boolean盲注案例实现
查看>>
N13-sqli盲注 基于时间型
查看>>
N1 技术心得 2019-6-26
查看>>
N1-环境配置
查看>>
N2-审计方法与步骤
查看>>
N3-常见的INI配置
查看>>
代码审计 N4 常见危险函数和特殊函数(一)
查看>>
MySQL笔记
查看>>
计算机运算方法之(原码 补码 反码 移码)
查看>>
计算机组成原理之(二进制与十进制互相转换,数的定点表示与浮点数表示)例题:设浮点数字长16位,其中阶码5位(含有1位阶符),尾数11位(含有1位数符)
查看>>
冒泡排序及其优化
查看>>
选择排序(java代码实现)
查看>>
插入排序
查看>>
哈夫曼树java代码实现
查看>>
快速排序
查看>>