shell基础语法以及监控进程不存在重启
生活随笔
收集整理的這篇文章主要介紹了
shell基础语法以及监控进程不存在重启
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)碼
# dos2unix ./test.sh
權(quán)限
# chmod a+x ./test.sh語法
變量
var="111"
echo $var
echo ${var}
運(yùn)算
no1=4;
no2=5;
let result=no1+no2
echo $result;
自增自減少
let no++ ?
let no--
[]和let類似
result=$[ no1 + no2 ]
result=$[ $no1 + 5 ]
也可以使用(()),但使用(())時(shí),變量名前需要加上$
result=$(( $no1 + 5 ))
expr也可以用于基本算術(shù)操作
result=`expr 3+4`
result=$(expr $no1 + 5)
以上不支持浮點(diǎn)
bc可以浮點(diǎn)
echo "4*0.56" |bc ?輸出2.24
文件描述符
0 1 2 標(biāo)準(zhǔn)輸入 輸出 標(biāo)準(zhǔn)錯(cuò)誤
重定向到文本
echo "123" > temp.txt
追加
echo "123" >> temp.txt
查看文件內(nèi)容
cat temp.txt
cat 1.txt ?2.txt ?多個(gè)內(nèi)容
ls +?
非法參數(shù)輸出錯(cuò)誤信息stderr
命令錯(cuò)誤并退回 返回非0的退出狀態(tài)
成功完成返回?cái)?shù)字0
退出狀態(tài)可以從特殊變量$?獲得,在命令執(zhí)行完后立刻運(yùn)行echo $?就可以打印退出狀態(tài)
ls + >out.txt ? 錯(cuò)誤信息不能輸出到文本
ls + 2>out.txt ? 錯(cuò)誤信息能輸出到文本
stderr和stdout各自
cmd 2>stderr.txt ?1>stdout.txt
stderr轉(zhuǎn)換為stdout
cmd 2>&1 out.txt
或者
cmd &> out.txt
stderr重定向到
/dev/null
讀取日期
date
函數(shù)定義
function fname()
{
return 0;返回值
}
函數(shù)調(diào)用
$fname;
$fname arg1 arg2;傳參數(shù)
一定要注意[]空格
#! /bin/sha=4;
b=5;if [ "$a" = "$b" ]; then
echo "1111"
#####
#! /bin/sha=4;
b=5;if [ "$a" -eq "$b" ]
then
echo "yyyyyyyyyy"
else
echo "nnnnn"
fi
#####
#! /bin/sh
ps aux|grep redis-stat | grep -v grep| wc -l
a=11
b=11
if [ $a -eq $b ]
then
echo "start process....."
else
echo "runing....."
fi
#####
注意<之類需要(())
下面這個(gè)監(jiān)控redis進(jìn)程不存在就重啟
#! /bin/shp="redis-server"
proc_num()
{num=`ps aux|grep $p | grep -v grep| wc -l`return $num
}proc_num
n=$?if (( "$n" < 1 ))
then
echo $n
echo "start redis-server process....."
else
echo $n
echo "redis-server runing ok."
fi
#####
crontab -e每分鐘監(jiān)控一次
*/1 * * * * /redis.sh
參考:《Linux Shell腳本攻略(第2版)》
Shell中字符串、數(shù)值的比較
linux 進(jìn)程監(jiān)控和自動(dòng)重啟的簡(jiǎn)單實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的shell基础语法以及监控进程不存在重启的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统轻量级监控工具monito
- 下一篇: 黄山风景区儿童票标准