shell腳本存檔

utilsh

1、獲取文件名為Storage.php的腳本桥温,根據(jù)10分位分鐘數(shù)拉起不同的腳本扑浸,通過合理設(shè)置crontab烧给,讓1h內(nèi)每個腳本執(zhí)行一次。

#! /bin/bash

# 入庫表互不影響喝噪,并行入庫础嫡,等最遲的腳本執(zhí)行完畢退出

file_count=0
store_scripts=()

function GET_SCRIPT_FILE(){
    for file in *;
        do
        if [ -f ${file} ] && [ ${file} == "Storage.php" ] ;then
                #獲取全部入庫腳本的絕對路徑
                ((file_count++))
                store_scripts[${file_count}]=$(echo `pwd`/${file})
        elif [ -d ${file} ];then
                cd ${file}
                GET_SCRIPT_FILE
                cd ..
        fi
        done
}

GET_SCRIPT_FILE
echo "There are ${file_count} scripts !"

#取當(dāng)前的分鐘數(shù),模10后可能是 0~5 共6個數(shù)
minute=`date '+%M'`
seed=$((10#${minute}/10))
counter=0
for script in ${store_scripts[@]}; do
  echo ${script}
  #當(dāng)?shù)趎個腳本酝惧,n%6==seed時執(zhí)行榴鼎;這樣crontab設(shè)置每10分鐘啟動一次,1h內(nèi)可以保證所有腳本運行一遍
  if [ $((${counter}%6)) == ${seed} ];then
    echo "Run!"
    php ${script} && echo "${script} Finished!" &
  else
    echo "Random Num is ${seed},and Counter is ${counter},Skip!"
  fi

  let counter=${counter}+1
done

wait

2晚唇、刪除MySQL中指定前綴名的表

#! /bin/bash

#db名字
db=$1
#table名字
table=$2

params=`echo $#`
echo "your input param is db=$1 and table prefix like $2"


if [ $params -lt 2 ]
then
 echo "Too Many Params,Can Only Accept Two Params"
 exit
fi

#connect mysql and read tb names
var=$(mysql -h192.168.241.175 -P3306 -uhomework -phomework  -e"use '$1';show tables like '$2%';")

count=0
#read table names
for i in $var;
do
 let count=$count+1
 if [ $count -ne 1 -a $count -ne 2 ]
 then
  #delete from db
  echo "deleting ...$i"
#  mysql -h192.168.241.175 -P3306 -uhomework -phomework  -e"use '$1';drop table $i"
 fi
done

3巫财、刪除兩個db的差集表

#! /bin/bash


#獲取線上db中存在的表名列表
online_tables=$(mysql -h192.168.5.58 -P6147 -uzyb_rd_r -ppdrucy2Jw9pu4Su -D homework_fudao -e"show tables;")

local_tables=$(mysql -h192.168.241.175 -P3306 -uhomework -phomework -D homework_fudao -e"show tables;")

count=0
#read table names
for i in $local_tables;
do
 let count=$count+1

 if [ $count -ne 1 -a $count -ne 2 ] && [[ ! "$online_tables" =~ "$i" ]]
 then
  #delete from db
  echo "deleting ...$i"
  #mysql -h192.168.241.175 -P3306 -uhomework -phomework -D homework_fudao -e "drop table $i"
 fi
done

4、七色球

#!/bin/bash

RED_COL='\033[91m'
BLUE_COL='\033[34m'
NONE_COL='\033[0m'

red_ball=""

while :
do
  clear
  echo '--機選雙色球--'
  tmp=$[RANDOM%33+1]
  echo "$red_ball" | grep -q -w $tmp && continue


  red_ball+=" $tmp"

  echo -en "$RED_COL$red_ball$NONE_COL"
  count=$(echo "$red_ball" | wc -w)
  if [ $count -eq 6 ];then
    bule_ball=$[RANDOM%16+1]
    echo -e "$BLUE_COL $bule_ball$NONE_COL"
    break
fi

sleep 1
done

5哩陕、es快速查詢

#!/bin/bash


INSTANCE="es.basic.suanshubang.com:9220"
AUTH=
ACTION="search"
INDEX=""
BODY="$3"
ISONLINE=false
METHOD="GET"

is_true()           { [[ "$1" = 'true' ]];      }


swan() {
    INSTANCE=es.basic.suanshubang.com:9220
    ACTION=_doc/_search
    INDEX=zyb_swan_workflow;
    BODY="${2:-}"

    is_true $ISONLINE && { INSTANCE=10.33.132.168:9200; AUTH=zybkefu:zybkefu; }

    case "$1" in
        search) ;;
        get)    BODY='{"query":{"match":{"taskId":'$2'}}}';;
        set)    BODY="$2";METHOD="POST"; ACTION=_doc/_update_by_query;;
        index)  ACTION=_doc/_mapping;;

        *) echo "請指定action"; exit 1;;
    esac

}
cuckoo() {
    INDEX=zyb_cuckoo_knowledge;
    ACTION=_doc/_search
    BODY="${2:-}"
    is_true $ISONLINE && { INSTANCE=bzres-f.zuoyebang.cc:80; AUTH=zybkefu:zybkefu; }
    is_true $ISONLINE && { INSTANCE=10.33.132.168:9200; AUTH=zybkefu:zybkefu; }

    case "$1" in
        search) ;;
        get)    BODY='{"query":{"match":{"taskId":'$2'}}}';;
        set)    BODY="$2";METHOD="POST"; ACTION=_doc/_update_by_query;;
        index)  ACTION=_doc/_mapping;;

        *) echo "請指定action"; exit 1;;
    esac
}
set -- $(getopt e "$@")

while [ -n "$1" ]; do
    case "$1" in
        -e) ISONLINE=true;;
        --) shift; break ;;
        *) echo "$1 is not option";exit 1;;
    esac
    shift
done

MODULE="$1"
shift


case "$MODULE" in
    swan) swan "$@";;
    cuckoo) cuckoo "$@";;

    *)   echo "請指定模塊";exit 2;;
esac

set -- "http://$INSTANCE/$INDEX/$ACTION" -H 'Content-Type: application/json' -d "$BODY" -X $METHOD

if [ -n "$AUTH" ]; then
    set -- "$@" -H "Authorization: Basic $(echo -n "$AUTH" | base64)"
fi

curl "$@"

此處 set -- xx 的作用是 將xx放到參數(shù)列表中平项,可以用$@取全部參數(shù)列表赫舒。

shell坑

1、value too great for base (error token is "08")
aa=08會被shell當(dāng)做八進(jìn)制數(shù)字闽瓢,加個標(biāo)注10#$aa,解決接癌。
https://www.cnblogs.com/patf/p/4701472.html

2、centos將 sh 軟鏈 /bin/dash,dash不支持大多數(shù)的bash語法和數(shù)據(jù)結(jié)構(gòu)扣讼,
在容器中啟動shell時缺猛,用/bin/bash 代替 sh

將sh指向bash

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椭符,一起剝皮案震驚了整個濱河市枯夜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌艰山,老刑警劉巖湖雹,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異曙搬,居然都是意外死亡摔吏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門纵装,熙熙樓的掌柜王于貴愁眉苦臉地迎上來征讲,“玉大人,你說我怎么就攤上這事橡娄∈浚” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵挽唉,是天一觀的道長滤祖。 經(jīng)常有香客問我,道長瓶籽,這世上最難降的妖魔是什么匠童? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮塑顺,結(jié)果婚禮上汤求,老公的妹妹穿的比我還像新娘。我一直安慰自己严拒,他們只是感情好扬绪,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著裤唠,像睡著了一般挤牛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上巧骚,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天赊颠,我揣著相機與錄音格二,去河邊找鬼。 笑死竣蹦,一個胖子當(dāng)著我的面吹牛顶猜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痘括,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼长窄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纲菌?” 一聲冷哼從身側(cè)響起挠日,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翰舌,沒想到半個月后嚣潜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡椅贱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年懂算,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庇麦。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡计技,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出山橄,到底是詐尸還是另有隱情垮媒,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布航棱,位于F島的核電站睡雇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丧诺。R本人自食惡果不足惜入桂,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一奄薇、第九天 我趴在偏房一處隱蔽的房頂上張望驳阎。 院中可真熱鬧,春花似錦馁蒂、人聲如沸呵晚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饵隙。三九已至,卻和暖如春沮脖,著一層夾襖步出監(jiān)牢的瞬間金矛,已是汗流浹背芯急。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驶俊,地道東北人娶耍。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像饼酿,于是被迫代替她去往敵國和親榕酒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 【腳本1】打印形狀 打印等腰三角形故俐、直角三角形想鹰、倒直角三角形、菱形 【腳本2】截取字符串 現(xiàn)有一個字符串如下: h...
    學(xué)無止境_9b65閱讀 461評論 0 1
  • 本文用于記錄學(xué)習(xí)和日常中使用過的shell腳本 【腳本1】打印形狀 打印等腰三角形药版、直角三角形辑舷、倒直角三角形、菱形...
    zwb_jianshu閱讀 5,532評論 1 5
  • 一槽片、Vim 文本編輯器 在 Linux 系統(tǒng)中一切都是文件惩妇,而配置一個服務(wù)就是在修改其配置文件的參數(shù) 1. Vim...
    Ricsy閱讀 595評論 0 7
  • Linux習(xí)慣問題: 在vim編輯時,按了ctrl + s后筐乳,再按ctrl + q就可以繼續(xù)執(zhí)行了歌殃。ctrl + ...
    光著腳的鞋閱讀 4,517評論 0 16
  • shell:用戶通過shell與操作系統(tǒng)內(nèi)核進(jìn)行交互。cat /etc/shells 查看當(dāng)前系統(tǒng)有哪些shel...
    xyzcmu閱讀 305評論 0 0