- 替换:变量=${变量}、变量=$(命令)、变量=表达式、变量=‘字符串’、变量=值
- 查看:echo $X
- 赋值:expr
- 运算:let、&成功执行命令2、||#失败执行命令2
文章插图
if [-n/-z $string] #如果string非空/空,返回True;
if [xx1 -d/-a/-o xx2] #不存在、并列(文件1比文件2新)、或;
[-e/-d/-f/-L/-r/-s/-h FILENAME] #如果FILENAME存在/为目录/为常规文件/符号链接/可读/长度不为0/软链接,则为真
- 比较:-gt、-lt、-eq
- 处理:#、%、/
- 特殊变量(参数)
文章插图
- 移动:shift #把变量从参数数组中移除
seq a b
seq -w b
循环、条件
- for
文章插图
- if
文章插图
- while
文章插图
xpect
例题:1. 测试一:监控磁盘的使用率,>90%时给root发邮件
文章插图
2.测试二:写一个脚本解决DOS攻击生产案例
提示:根据web日志或者或者网络连接数,监控当某个IP并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔3分钟 。
法一:
# !/bin/bash
IP=`netstat -nut | awk '{print $5}' | cut -d: -f1 | grep -o '.*[0-9]' | awk '{++ip[$1]}END{for(i in ip)print ip[$1],i}' | sort -n
文章插图
IP=`netstat -nut | awk '{print $5}' | cut -d: -f1 | grep -o '.*[0-9]' | awk '{++ip[$1]}END{for(i i n ip)print ip[$1],i}' | sort -n | awk '{if($1>1)p rint $2}'`
文章插图
3. 测试三:查看10.0.0.0/24网段中的在线用户数;
ping:测试主机间网络的连通性
文章插图
22. env CLOUD_MySQL_ENV=test exec /opt/cloud_mysql/bin/uwsgi --die-on-term --ini /opt/cloud_mysql/conf/uwsgi.in
文章插图
nmap:一款开源的网络探测器和安全审核工具,它可以快速扫描大型网络
文章插图
4. 批量创建文件及改名(不同的系统语法有所不同,此为另一种思路)
文章插图
15.passwd=`echo $(date+%t%N)$RANDOM|md5sum|cut -c 2-9` #$RANDOM表示内部变量,可以创建随机数;date+X%设置系统时间格式
16. useradd oldboy$n >&/dev/null&& user_status=$?
17. echo "$passwd"|passwd --stdinoldboy$n >&/dev/null && pass_status=$? #用echo xxx | yyy --stdin zzz,其中xxx为和终端交互内容
文章插图
python
文章插图
#当前时间
time.strtime(’%y-%m-%d’)
#磁盘状态
os.open('df -h ',‘r’).readline()
#表示形态
‘n’.join(xxx)
#写入数据
f.write(’%s’ % str)、f.flush() 、f.close()
四,监控源代码分析
1,PS命令查看linux程序进程
文章插图
2,shell脚本
利用PS命令查看server进程的状态,如死亡、就重新启动 。做一个死循环轮训 。
文章插图
30秒去轮询这个这个进程 。死亡就继续重启 。
3,效果
文章插图
PS查看进程号,此时procnum = 3 然后用kill 命令杀死进程之后
推荐阅读
- 压缩文件是什么原理?
- 宁红茶的历史文化
- 教你玩转HTTP—状态码
- 宁红茶的历史小故事
- 宁红茶的历史
- Spring boot 配置类与配置文件详解
- 宁红红茶的发展历史
- 孟加拉大吉岭红茶
- 孕晚期可以喝伯爵红茶吗
- 奶茶阿萨姆红茶比例