Linux下基于端口的服务检查脚本
2009-03-10 18:35
369 查看
0218课里,先是一个简单的小程序,注意字符测试的使用,建议所有被测试的字符都要加引号,而在字符测试匹配模式(也可以使正则表达式)的时候,需要用双中括号,题目如下:
练习:判定所有用户是否拥有可登陆shell
#!/bin/bash
for userName in `cut -d: -f1 /etc/passwd`;do
if [[ `grep "^$userName\>" /etc/passwd | cut -d: -f7` =~ sh$ ]]; then
echo "login user: $userName"
else
echo "nologin user: $userName"
fi
done
上题中,比较诡异的是,判定的前半部分可以用grep命令引用,还不需要加双引号,神奇!
练习:写一个脚本
1、让用户交互式输入一个用户名,先判定用户是否存在,不存在,则以7为退出码;
2、判断用户的shell是否为/bin/bash,如果是,则显示为"Bash User",退出码为0;
否则,则显示为"Not Bash User.",退出码为1。
read -p "please input usename :" username
if ! grep "^$username/>" /etc/passwd &> /dev/null;then
exit 7
elif
[[ `grep ^$username/> /etc/passwd |cut -d:-f7` =~ /bin/shell ]];then
echo "bash user"
exit 0
else
echo "not bash user"
exit 1
以上这题,取自学友笔记
练习:1、显示如下菜单:
cpu)show cpu info
mem)show memory info
quit)quit
Enter your option:
2、如果用户选择cpu,则显示文件/proc/cpuinfo的信息
3、如果用户选择men,则显示文件/proc/meminfo的信息
4、如果用户选择quit,则退出,且退出码为5;
5、如果用户键入其他字符,则显示未知选项,请重新执行脚本,退出码为6。
以下解答是默认用户输入小写选项的简单版本:
#!/bin/bash
cat <<EOF
cpu:show cpu info
mem:show memory info
quit:quit
EOF
read -p "Enter your option:" userOption
if [ "$userOption" == "cpu" ] &> /dev/null;then
cat /proc/cpuinfo
elif [ "$userOption" == "mem" ] &> /dev/null;then
cat /proc/meminfo
elif [ "$userOption" == "quit" ] &> /dev/null;then
exit 5
else
echo "Bad input, try again." && bash cpuinfo.sh
fi
以下解答是接受用户大小写命令的版本:
#!/bin/bash
cat <<EOF
cpu:show cpu info
mem:show memory info
quit:quit
EOF
read -p "Enter your option:" userOption
if [[ "$userOption" =~ [Cc][Pp][Uu] ]] &> /dev/null;then
cat /proc/cpuinfo && bash cpuinfo2.sh
elif [[ "$userOption" =~ [Mm][Ee][Mm] ]] &> /dev/null;then
cat /proc/meminfo && bash cpuinfo2.sh
elif [[ "$userOption" == [Qq][Uu][Ii][Tt] ]] &> /dev/null;then
exit 5
else
echo "Bad input, please try again." && bash cpuinfo2.sh
fi
最后是马哥的版本:
#!/bin/bash
#
returnValue=0
cat <<EOF
cpu) Print cpu information
mem) Print memory infomation
quit) Quit
EOF
read -p "Enter your option:" userOption
userOption=`echo $userOption | tr 'A-Z' 'a-z'` #这里的转换大小写命令很赞!
if [[ "$userOption" == "cpu" ]];then
cat /proc/cpuinfo
elif [[ "$userOption" == "mem" ]];then
cat /proc/meminfo
elif [[ "$userOption" == "quit" ]];then
echo "quit"
returnValue=6
else
echo "unknown option"
returnValue=7
fi
#[ -z $returnValue ] && returnValue=0 这句也可以写这里,作预设判断
exit $returnValue
其实我还是觉得马哥写的最好!
最后一题是自己写的,两个版本,自己运行时没有出错,希望朋友们可以debug。
完成了这些后,就遇到了传说中的VIM了!首先是要学会怎么退出VIM,哈哈哈哈!
练习:判定所有用户是否拥有可登陆shell
#!/bin/bash
for userName in `cut -d: -f1 /etc/passwd`;do
if [[ `grep "^$userName\>" /etc/passwd | cut -d: -f7` =~ sh$ ]]; then
echo "login user: $userName"
else
echo "nologin user: $userName"
fi
done
上题中,比较诡异的是,判定的前半部分可以用grep命令引用,还不需要加双引号,神奇!
练习:写一个脚本
1、让用户交互式输入一个用户名,先判定用户是否存在,不存在,则以7为退出码;
2、判断用户的shell是否为/bin/bash,如果是,则显示为"Bash User",退出码为0;
否则,则显示为"Not Bash User.",退出码为1。
read -p "please input usename :" username
if ! grep "^$username/>" /etc/passwd &> /dev/null;then
exit 7
elif
[[ `grep ^$username/> /etc/passwd |cut -d:-f7` =~ /bin/shell ]];then
echo "bash user"
exit 0
else
echo "not bash user"
exit 1
以上这题,取自学友笔记
练习:1、显示如下菜单:
cpu)show cpu info
mem)show memory info
quit)quit
Enter your option:
2、如果用户选择cpu,则显示文件/proc/cpuinfo的信息
3、如果用户选择men,则显示文件/proc/meminfo的信息
4、如果用户选择quit,则退出,且退出码为5;
5、如果用户键入其他字符,则显示未知选项,请重新执行脚本,退出码为6。
以下解答是默认用户输入小写选项的简单版本:
#!/bin/bash
cat <<EOF
cpu:show cpu info
mem:show memory info
quit:quit
EOF
read -p "Enter your option:" userOption
if [ "$userOption" == "cpu" ] &> /dev/null;then
cat /proc/cpuinfo
elif [ "$userOption" == "mem" ] &> /dev/null;then
cat /proc/meminfo
elif [ "$userOption" == "quit" ] &> /dev/null;then
exit 5
else
echo "Bad input, try again." && bash cpuinfo.sh
fi
以下解答是接受用户大小写命令的版本:
#!/bin/bash
cat <<EOF
cpu:show cpu info
mem:show memory info
quit:quit
EOF
read -p "Enter your option:" userOption
if [[ "$userOption" =~ [Cc][Pp][Uu] ]] &> /dev/null;then
cat /proc/cpuinfo && bash cpuinfo2.sh
elif [[ "$userOption" =~ [Mm][Ee][Mm] ]] &> /dev/null;then
cat /proc/meminfo && bash cpuinfo2.sh
elif [[ "$userOption" == [Qq][Uu][Ii][Tt] ]] &> /dev/null;then
exit 5
else
echo "Bad input, please try again." && bash cpuinfo2.sh
fi
最后是马哥的版本:
#!/bin/bash
#
returnValue=0
cat <<EOF
cpu) Print cpu information
mem) Print memory infomation
quit) Quit
EOF
read -p "Enter your option:" userOption
userOption=`echo $userOption | tr 'A-Z' 'a-z'` #这里的转换大小写命令很赞!
if [[ "$userOption" == "cpu" ]];then
cat /proc/cpuinfo
elif [[ "$userOption" == "mem" ]];then
cat /proc/meminfo
elif [[ "$userOption" == "quit" ]];then
echo "quit"
returnValue=6
else
echo "unknown option"
returnValue=7
fi
#[ -z $returnValue ] && returnValue=0 这句也可以写这里,作预设判断
exit $returnValue
其实我还是觉得马哥写的最好!
最后一题是自己写的,两个版本,自己运行时没有出错,希望朋友们可以debug。
完成了这些后,就遇到了传说中的VIM了!首先是要学会怎么退出VIM,哈哈哈哈!
相关文章推荐
- Linux下基于端口的服务检查脚本
- Linux下基于端口的服务检查脚本
- 20171109L09-02老男孩Linux运维实战培训-Lamp系列-Apache服务生产实战应用指南05-基于端口的
- linux小白搭建apache服务-基于端口的虚拟主机
- 开发调试linux服务时几个好用的进程和端口查询命令组合和简单脚本(ps netstat awk grep)
- 定制微型linux实现启用虚拟终端基于帐号密码登录、提供ssh服务,提供Web服务(下)附有命令移植脚本 推荐
- 在 CentOS 7.3 上安装 nginx 服务为例,说明在 Linux 实例中如何检查 TCP 80 端口是否正常工作
- 在linux平台上搭建目前企业公司中基于域名,ip以及端口的虚拟主机apache服务!还有
- linux脚本检查外部服务器端口状态
- Tomcat批量控制——基于Linux系统服务脚本
- linux系统ssh远程连接检查脚本
- LINUX的端口和服务
- Linux 配置脚本 启动服务
- linux开机启动脚本、服务等
- linux脚本检查公司网络是否正常
- Linux Oracle服务启动&停止脚本与开机自启动
- linux监测端口和网卡状况重启脚本
- 服务进程自启动脚本,实现每分钟检查服务运行状态
- 基于Dubbo的分布式系统架构-在Linux操作系统上手工部署Dubbo服务
- Linux中设置服务、脚本自启动的三种方式