目录
一、什么是shell
二、shell脚本的运用场景
三、常用的shell脚本
四、总结
一、什么是shell
shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 shell 的本质。
简单来说,我们就是通过shell来操作Linux。下面我来分享下我之前工作中常用的一些shell脚本。
二、shell脚本的运用场景
掌握shell脚本的使用方式在我们环境管理上是非常有帮助的。
举例子,我们可以通过shell脚本检测测试开发环境的应用进程是否存在,若有异常可以发送钉钉通知或者邮件通知;检测应用是否正常启动;定时清理测试开发环境的日志文件,缓存文件等;等等一系列环境问题都可通过shell来帮我们实现。
三、常用的shell脚本
1、for循环
代码语言:javascript复制#!/usr/bin/env bash
#-----------------------------------------------------------------------------
# author: wmh
# 脚本说明:for循环.
#-----------------------------------------------------------------------------
for1() {
array=(a b c)
for i in ${array[@]}; do
echo "for循环: ${i}"
done
}
for2() {
array1=(a1 b1 c1)
array2=(a2 b2 c2)
for ((i = 0; i < ${#array1[@]}; i )); do
for ((i = 0; i < ${#array2[@]}; i )); do
echo "for循环 第i=${i}次: ${array1[i]} ${array2[i]}"
done
done
}
for3() {
array1=(a1 b1 c1)
array2=(a2 b2 c2)
#数组位置的话需要加!
for i in ${!array1[@]}; do
for j in ${!array2[@]}; do
# ${i} -eq ${j}: 表示参数i和参数j的位置相同
if [ ${i} -eq ${j} ]; then
echo "for循环 第i=${i} j=${j}次: array1=${array1} array2=${array2}"
echo "for循环 第i=${i} j=${j}次: array1=${array1[$i]} array2=${array2[$j]}"
echo " "
fi
done
done
}
for1
for2
for3
2、检测服务
代码语言:javascript复制#!/bin/bash
#-----------------------------------------------------------------------------
# author: wmh
# 脚本说明:检查服务进程是否存在, 若不存在则进行钉钉通知.
#-----------------------------------------------------------------------------
time=$(date %Y-%m-%d_%H:%M:%S)
# content里面的参数需要加 ''
funDingTalk() {
curl 'https://oapi.dingtalk.com/robot/send?access_token=1234567890'
-H 'Content-Type: application/json'
-d '{"msgtype": "text",
"text": {
"content": "'$time' '${HOSTNAME}' '$1' has been killed"
}
}'
}
pid_check() {
pid=$(ps aux | grep $1 | grep -v grep | awk '{print $2}')
if [ "$pid" ]; then
echo -e "