【shell脚本】不停地telnet一个ip或域名,并输出结果到文件中===telnetscript.sh
编写shell脚本不停地telnet一个域名,并输出结果到文件中
[root@localhost ~]# cat telnetscript.sh
#!/bin/bash
#检查是否在root用户下执行此脚本(0代表root用户的权限)
if [ $(id -u) != "" ];then
echo "请在root用户下运行脚本"
exit
fi
#定义输出目录
DIR="/var/log/"
TIME="$(date +%Y-%m-%d,%X)"
IP=ip地址或域名
PORT=端口号
#下面需要先安装nmap工具
checkPort(){
#检查端口开通情况,输出端口的开通信息(/tcp open https)
portState=$(nmap -P0 -sS -p${PORT} ${IP} | awk '/STATE/{getline line;print line}' | awk '{print $2}')
if [ X"${portState}" == X"open" ];then
echo "${IP} ${PORT} is open" >> ${DIR}telnetstatus.log
echo "${TIME}" >> ${DIR}telnetstatus.log
else
echo "${IP} ${PORT} is failure" >> ${DIR}telnetstatus.log
echo "${TIME}" >> ${DIR}telnetstatus.log
fi
}
while true;
do
checkPort
sleep
done
运行脚本
在后台运行
[root@localhost ~]# ./telnetscript.sh &
[]
查看输出结果并统计
[root@localhost ~]# less /var/log/telnetstatus.log
[root@localhost ~]# wc -l /var/log/telnetstatus.log
将工作调到前台运行
[root@localhost ~]# fg
./telnetscript.sh
[root@localhost ~]# jobs
注意:
比较两个字符串是否相等的办法是:
if [ X"$test" = X"test" ]; then
这里的关键有几点:
1、使用单个等号
2 、注意到等号两边各有一个空格:这是unix shell的要求
3、 注意到X"$test"前面的X,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了X = Xtest,显然是不相等的。而如果没有这个X,表达式就会报错:[: =: unary operator expected
date命令:
%X表示时分秒。相当于 %H:%M:%S
【shell脚本】不停地telnet一个ip或域名,并输出结果到文件中===telnetscript.sh的更多相关文章
- 【Shell脚本】怎样表示一个for循环
[Shell脚本]怎样表示一个for循环 在此说一下我常用的两个结构: 1. for i in $(seq 1 100); do echo $i done 2. for (( i = ...
- split,cdn,shell脚本,tmux,记一次往国外服务器传大文件的经历
需求是这样的:将一个大概680M的Matlab数据文件传到国外某所大学的服务器上,服务器需要连接VPN才能访问,由于数据文件太大,而且如果我直接ssh连过去或者用ftp传输,那么中间很可能中断. ps ...
- 一个网站同一域名不同目录下的文件访问到的cookie值不同是什么原因?
一个网站(e:\test):里面包含多个目录如: html css js php img ..... 等等.然后,我在js目录里面的js文件中设置了cookie:同样也在php目录中的php文件中设置 ...
- SHELL脚本学习-练习写一个脚本4
#编写一个脚本时,自动生成”#!/bin/bash”这一行和相关注释信息. 把以下的代码保存为一个sh文件,比如test.sh , 新建脚本是使用 bash test.sh newfile 即可. ...
- Shell脚本快速查看网段内ip占用情况和可用ip
思想就是整个网段ping一遍,对于ping不通的,解析其失败的字符来判定 #!/bin/bash head_add=${} address=${head_add%.*} echo address=$a ...
- shell脚本学习-练习写一个脚本2
# 1.依次展示/var目录下的对象,并说明是文件或者目录.格式如:Hello,$file. # 2.统计一个有多少个文件. #!/bin/bash #Program Description: #Au ...
- shell脚本学习-练习写一个脚本1
# 1.依次展示/etc/passwd中的用户名和UID.格式如:Hello,$USER,your UID is $UID. # 2.统计一个有多少个用户 #!/bin/bash #Program D ...
- shell脚本 列出所有网卡的ip地址
#!/bin/bashfor i in `ifconfig | grep -o ^[a-z0-9]*`do ifconfig $i|sed -n 2p|awk '{ print $2 }'|tr -d ...
- SHELL脚本学习-练习写一个脚本3
#通过ping命令测试192.168.1段的所有主机是否在线,如果在线就显示is up并显示蓝色,如果不在线就显示is down. #!/bin/bash #Program Description: ...
随机推荐
- 《细说PHP》第四版 样章 第18章 数据库抽象层PDO 7
18.6 PDO对预处理语句的支持 在生成网页时,许多PHP脚本通常都会执行除参数外其他部分完全相同的查询语句.针对这种重复执行一个查询,但每次迭代使用不同参数的情况,PDO提供了一种名为预处理语句 ...
- Java匹马行天下之学编程的起点——编程常识知多少
学编程的起点——编程常识知多少 前言: 刚去大学那会,我就知道我被录取的学院是软件学院,还知道一点就是软件学院主要是学电脑的,但具体要学什么其实一无所知.待的时间久了,慢慢的,像“编程”.“软件”.“ ...
- Zabbix 系列文章
Zabbix 所有文章目录 本系列文章都基于 Zabbix 4.0 , Zabbix 4.0 是属于长期支持版本,其它的长期支持版本有 3.0 .2.2 . 官方已经有中文文档, 官方文档链接: Za ...
- JAVA 基础篇
一.数组 1. 什么是数组? 数组和变量差不多,也是可以存放数据的,但是数组可以存放多个数据,而且多个数据的数据类型统一 格式 数据类型 [] 数组名称; 还有一种等效的写法,不推荐 数据类型 数组名 ...
- Java基础—面向对象的三大特性
面向对象有三大特性分别是继承.封装和多态. (1)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类 ...
- python中time、datetime模块的使用
目录 python中time.datetime模块的使用 1.前言 2.time模块 1.时间格式转换图 2.常用方法 3.datetime模块 python中time.datetime模块的使用 1 ...
- pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理
2019-08-20 07:45:07 python爬虫是一直来大家都用的多的,我也是常常用到. requests做请求方便的很,但是今天却遇到requests的bug.text内容不可信. pych ...
- CSS符合选择器
CSS复合选择器 后代选择器 后代选择器又称为包含选择器,可以选择父元素里面的子元素.其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔,当标签发生嵌套时,内层标签就成为外层标签的后代 元 ...
- CSS设置文本的水平对齐方向
介绍 在CSS中text-align属性有3种值,如下:left左.center中.right右. 由于简单我就不再多的介绍了直接进入text-align属性实践了,如果大家是新手自己一定要去实践哈, ...
- Shodan搜索引擎在信息搜集中的应用
Shodan搜索引擎在信息搜集中的应用 作者:王宇阳 时间:2019-06-07 soudan(搜蛋),通过互联网后的通道来搜索信息:Google通过网址搜索互联网,shodan搜索互联网的在线.指定 ...