编写shell脚本不停地telnet一个ip或域名,并输出结果到文件中

编写shell脚本不停地telnet一个域名,并输出结果到文件中

[[email protected] ~]# cat telnetscript.sh
#!/bin/bash
#检查是否在root用户下执行此脚本(0代表root用户的权限)
if [ $(id -u) != "0" ];then
        echo "请在root用户下运行脚本"
        exit 1
fi
#定义输出目录
DIR="/var/log/"
TIME="$(date +%Y-%m-%d,%X)"
IP=ip地址或域名
PORT=端口号
#下面需要先安装nmap工具
checkPort(){
        #检查端口开通情况,输出端口的开通信息(443/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 3
done

运行脚本

在后台运行

[[email protected] ~]# ./telnetscript.sh &
[1] 30257

查看输出结果并统计

[[email protected] ~]# less /var/log/telnetstatus.log
[[email protected] ~]# wc -l /var/log/telnetstatus.log

将工作调到前台运行

[[email protected] ~]# fg
./telnetscript.sh
[[email protected] ~]# 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

原文地址:https://www.cnblogs.com/HeiDi-BoKe/p/11494409.html

时间: 2024-10-12 15:47:17

编写shell脚本不停地telnet一个ip或域名,并输出结果到文件中的相关文章

跟着老刘学《Linux就该这么学》第五天--编写Shell脚本

编写Shell脚本可以将Shell终端解释器当作人与计算机硬件之间的"翻译官",它作为用户与Linux系统内部的通信媒介,除了能够支持各种变量与参数外,还提供了诸如循环.分支等高级编程语言才有的控制结构特性.要想正确使用Shell中的这些功能特性,准确下达命令尤为重要.Shell脚本命令的工作方式有两种:交互式和批处理. 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命

[转帖]编写shell脚本所需的语法和示例

编写shell脚本所需的语法和示例 https://blog.csdn.net/CSDN___LYY/article/details/100584638 在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls.cd.pwd等等.总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动.暂停.停止程序的运行或对计算机进行控制. shell 是

编写shell脚本和执行

这次的学习内容: 认识shell,如何编写shell脚本和执行Shell 其实就是一个解释执行命令的程序,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行.如果对windows的dos有了解,可以这样理解,其实shell脚本文件和.bat批处理文件差不多.然而linux下的shell比起windows的dos强大很多,呵呵.为了安全起见,创建一个普通的账号进行学习]# useradd cnetsa]# passwd cnetsa然后使用 cnetsa 这

python编写shell脚本详细讲解

今天需要编写一个shell脚本实现App自动生成的功能,需要处理HTTP REST请求,解析JSON,处理文件,执行命令等,本来想用shell搞定,但感觉比较麻烦,还是用python吧,虽然以前用Python都是在树莓派上玩的,多尝试一种方法总是好的. 虽然我受linux的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极.为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随写随扔的程序,完全没有任何美感可言.其次是sh脚本的处理能力还是比较弱的,在文本处理.XML处理还有网络

Linux系统编写shell脚本批量创建和删除用户

一.编写shell脚本批量添加用户 实现方法:判断用户是否存在,存在则返回错误提示,同时判断用户文件是否存在,不存在则退出 1.创建添加用户脚本 [[email protected] ~]# vim useradd.sh #!/bin/bashif [ $# -eq 0 ];then        echo "你没有输入任何文件!"        exit 1fi if [ ! -f $1 ];then        echo "输入有误!"        exit

Ubuntu系统编写shell脚本程序一次安装多个软件包

编写shell脚本程序一次安装多个软件,主要用于一些软件依赖环境配置. 1.shell脚本程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 2.当编辑好脚本后,还必须使其可执行. 使脚本可执行: chmod +x filename 3.然后,您可以通过输入: ./filename 来执行您的脚本. 如下: 下面是我安装NS3之前,安装NS3依赖的多个软件包: 1.在vi中编

编写Shell脚本的最佳实践

前言 由于工作需要,最近重新开始拾掇shell脚本.虽然绝大部分命令自己平时也经常使用,但是在写成脚本的时候总觉得写的很难看.而且当我在看其他人写的脚本的时候,总觉得难以阅读.毕竟shell脚本这个东西不算是正经的编程语言,他更像是一个工具,用来杂糅不同的程序供我们调用.因此很多人在写的时候也是想到哪里写到哪里,基本上都像是一段超长的main函数,不忍直视.同时,由于历史原因,shell有很多不同的版本,而且也有很多有相同功能的命令需要我们进行取舍,以至于代码的规范很难统一. 考虑到上面的这些原

安装apached源码包以及编写shell脚本使其启动更加方便,并且和启动系统服务相同

实验目的:安装apached源码包,编写apached启动脚本,使其像启动系统服务一样 实验要求:用shell编写启动脚本 实验环境:Linux系统以及apached源码包       httpd-2.2.25.tar.gz 源码包需要编译安装所以在安装源码包时,查看系统中是否已安装编译工具 make gcc gcc-c++  "开发工具" 等软件包. 解压软件包,解压在当前目录下. 编译源码包并且指定安装目录为/usr/local/apached目录下. 3.安装源码包. 4.查看端

如何编写shell脚本

1.首先创建一个目录 vi hello.sh 2.编写shell第一行 #!/bin/bash    (为了声明是shell脚本,第一行都要这么写) 3.可以添加注释     #the first program (加#的这一行是不生效的) 4.写脚本     echo "hello world" 5.执行脚本,    赋予执行权限: chmod u+x hello.sh   或 chmod 755 hello.sh 执行脚本: ./hello.sh 或者  直接 bash hello