Shell脚本删除目录需要特别注意的问题
比如:
#!/bin/sh
path=/tmp
rm -rf $path
如果$path这个变量没有值,这个脚本有可能从当前用户的家目录开始删除,甚至可能从根目录开始删除。
因此,脚本删除目录的时候一定要先判定是否有值。
修改脚本如下:
if [ -e $path ] ;then
rm -rf $path
fi
附:企业常用find删除方法
path=\tmp
if [ -e $path ] ;then
find $path -type f -name '*.log' -mtime +1 | xgras rm -rf
fi
LINUX下判断是否为整数的思路1:
执行expr 1 + $i,如果$?不等于1,则不为整数。
编写脚本要拆分
比如,开发脚本检测剩余内存,如小于500M则邮件报警。
拆分步骤:
1. 获取内存大小
free -m | grep buffers/ | awk '{print $NF}'
2. 判断是否小于500
略
3. 如小于500,启动邮件。
略。
拆分成3部分后,编写脚本的思路就很清晰了。
判断变量是否为字符串的思路:
1. 将变量中的数字全都用sed过滤掉,如剩下的部分为空,则不为字符串。
[ -n `echo $a |sed 's/[0-9]//g'` ] && echo '不是字符串'
取出ifconfig中eth0的IP地址:
ifconfig eth0 | grep "inet addr:" | cut -d":" -f2 | cut -d " " -f1
用curl取得http_code的方式监控WEB服务:
curl -I -s -w %{http_code} -o /dev/null www.baidu.com
用wget --spider的方式监控web服务
wget --spider --timeout=10 --tries=2 www.baidu.com
远程监控端口的命令nmap
nmap 192.168.0.10 -p 80
调用系统函数实现颜色功能:
Shell颜色代码
Shell颜色代码
echo -e “\033[30m 黑色字 \033[0m”
echo -e “\033[31m 红色字 \033[0m”
echo -e “\033[32m 绿色字 \033[0m”
echo -e “\033[33m 黄色字 \033[0m”
echo -e “\033[34m 蓝色字 \033[0m”
echo -e “\033[35m 紫色字 \033[0m”
echo -e “\033[36m 天蓝字 \033[0m”
echo -e “\033[37m 白色字 \033[0m” echo -e “\033[40;37m 黑底白字 \033[0m”
echo -e “\033[41;37m 红底白字 \033[0m”
echo -e “\033[42;37m 绿底白字 \033[0m”
echo -e “\033[43;37m 黄底白字 \033[0m”
echo -e “\033[44;37m 蓝底白字 \033[0m”
echo -e “\033[45;37m 紫底白字 \033[0m”
echo -e “\033[46;37m 天蓝底白字 \033[0m”
echo -e “\033[47;30m 白底黑字 \033[0m”