【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: ...
随机推荐
- Selenium+java - 使用csv文件做数据驱动
前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据 ...
- Rust开发环境搭建
1.Rust概述 按照百度百科的说法,Rust是一门系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言.Rust在语法上和C++类似 ,但是设计者想要在保证 ...
- C#中对文件File常用操作方法的工具类
场景 C#中File类的常用读取与写入文件方法的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983 注: 博客 ...
- SpringBoot(一):构建第一个SpringBoot工程
1.项目格式如下: 1.启动类: package com.monkey01.springbootstart; import org.springframework.boot.SpringApplica ...
- 多线程学习二:线程池 ExecutorService
创建线程池的2种方式: 使用线程池方式1--Runnable接口: 通常,线程池都是通过线程池工厂创建,再调用线程池中的方法获取线程,再通过线程去执行任务方法. Executors:线程池创建工厂类: ...
- DDoS的攻击方法
DDoS攻击 DDoS攻击的方法 攻击网络带宽资源 我们可以采用对目标的网络带宽资源进行攻击,目的就是浪费对方有限的网络带宽资源,使得目标服务出现网络滞缓直至网络带宽资源匮乏,无法访问或访问速度慢. ...
- MAC TXT文本
Mac系统下.txt格式的纯文本怎么保存? 作者:佚名 字体:[增加 减小] 来源:互联网 时间:06-02 14:29:23 我要评论 Mac系统下.txt格式的纯文本怎么保存?.txt是个用途广泛 ...
- Github使用总结(添加ssh-key,新建仓库,添加协作者) 转
http://jingyan.baidu.com/article/ab0b5630936ab6c15afa7d1c.html https://help.github.com/articles/gene ...
- PHP代码篇(二)-- array_column函数将二维数组格式化成固定格式的一维数组,及优化查询方法
小白因为经常用到多表查询,比如获取一个会员领取的卡卷list,里面当然包含了1“会员优惠券记录表t_coupon_members”主表,然后2“门店优惠券表t_coupon”,和3“门店信息表t_sh ...
- fiddler---Fiddler性能测试
从上几篇文章中我们了解到Fiddler可以帮助我们做接口测试,修改断点,抓包等应用,但是你可能想想不到,Fiddler也能做简单的性能测试 性能测试 性能测试是通过自动化的测试工具模拟多种正常.峰值以 ...