shell脚本

ansible批量执行命令

扶醉桌前 提交于 2020-03-13 14:36:58
批量管理linux服务器指的是:批量执行命令、下发文件等等 安装ansible 1.1: 安装epel源 yum install epel-release -y #编辑/etc/yum.repos.d/epel.repo,注释mirrorlist,打开baseurl 1.2: 安装ansible yum list ansible #ansible版本,如果这个命令运行有问题的话,多运行几次 yum install ansible -y 1.3: ansible查看帮助 ansible-doc -l #查看总帮助 ansible-doc -s shell #查看shell模块的帮助 ansible-doc -s raw 配置主机组(/etc/ansible/hosts) [testgroup] 192.168.56.40 192.168.56.41 192.168.56.42 [test41] 192.168.56.41 [test42] 192.168.56.42 配置ssh免密码登录 ssh-keygen -t rsa#一直按回车即可 ssh-copy-id -i .ssh/id_rsa.pub ip #上传公钥到服务器 ansible模块 ansible语法 ansible 主机组或者主机 -m 模块 -a 命令 2 ansible语法测试 ansible testgroup

Shell脚本之awk详解

三世轮回 提交于 2020-03-13 14:08:18
一.基本介绍 1.awk: awk是一个强大的文本分析工具,在对文本文件的处理以及生成报表,awk是无可替代的。awk认为文本文件都是结构化的,它将每一个输入行定义为一个记录,行中的每个字符串定义为一个域(段),域和域之间使用分割符分割。 2.功能:流控制、数学运算、进程控制、内置的变量和函数、循环和判断 3.工作原理: awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。 (1)行工作模式,读入文件的每一行,会把一行的内容,存到$0里 (2)使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100) (3)输出的时候按照内置变量OFS(out FS),输出 (4)读入下一行继续操作 简单实例 [root@tx3 ~]# echo "this is a book" > awk.txt [root@tx3 ~]# awk '{print $2,$1,$3,$4}' awk.txt is this a book 4. Awk常用内置变量表: 1 $0 当前记录(作为单个变量) 2 $1~$n 当前记录的第n个字段,字段间由FS分隔 3 FS 输入字段分隔符 默认是空格 4 NF 当前记录中的字段个数,就是有多少列 5 NR 已经读出的记录数,就是行号,从1开始 6 RS 输入的记录他隔符默 认为换行符 7 OFS

SHELL基础语法

时光怂恿深爱的人放手 提交于 2020-03-13 11:37:11
Shell 脚本的第一行必须是如下格式: v #!/bin/sh 符号 #! 用来指定该脚本文件的解析程序。在上面 例子中使用 /bin/sh 来解析该脚本。当编辑好脚本 后,如果要执行该脚本,还必须使其具有可执行属性。 chmod +x filename 在 shell 编程中, 所有的变量都由字符串组成 , 并且不需要预先对变量进行声明 , 例 s1: #!/bin/sh #set variable a a="hello world" # print a echo "A is:" echo $a 有时候变量名很容易与其他文字混淆,比如: S13: num=2 echo "this is the $numnd“ 这并不会打印出 "this is the 2nd" ,而仅仅打印 "thisis the " ,因为 shell 会去搜索变量 numnd 的值,但是 这个变量时没有值的。可以使用花括号来告诉 shell 我 们要打印的是 num 变量: num=2 echo "this is the ${num}nd" 这将打印: this is the 2nd 默认变量 $# : 传入脚本的命令行参数个数 v $* : 所有命令行参数值,在各个参数值之间 留有空格 v $0 : 命令本身( shell 文件名) v $1 : 第一个命令行参数 v $2 : 第二个命令行参数 S2:

[转帖]你可能不知道的SHELL

删除回忆录丶 提交于 2020-03-13 08:05:29
你可能不知道的SHELL https://coolshell.cn/articles/8619.html 2012年11月23日 404null 评论 146 条评论 108,187 人阅读 Shell也叫做命令行界面,它是*nix操作系统下用户和计算机的交互界面。Shell这个词是指操作系统中提供访问内核服务的程序。 这篇文章向大家介绍Shell一些非广为人知、但却实用有趣的知识,权当品尝shell主食后的甜点吧。 科普 先科普几个你可能不知道的事实: Shell几乎是和Unix操作系统一起诞生,第一个Unix Shell是肯·汤普逊(Ken Thompson)以Multics上的Shell为模范在1971年改写而成,并命名Thompson sh。即便是后来流行的bash(shell的一种变体),它的年龄实际上比当前流行的所有的Linux kernel都大,可谓在Linux系统上是先有Shell再有Kernel。 当前绝大部分*nix和MacOS操作系统里的默认的Shell都是bash,bash由Brian Fox在1987年创造,全称Bourne Again shell ( bash)。 你或许听说除了bash之外,还有Bourne shell ( sh),Korn shell ( ksh),C shell (包括 csh and tcsh)

2019-2020-2 网络对抗技术 20175217 Exp2 后门原理与实践

怎甘沉沦 提交于 2020-03-13 01:40:17
一、实验目标 清楚后门概念 会用nc获取远程主机的Shell 会用meterpreter 会启动后门 二、实验内容 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, 任务计划启动 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell 三、基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 当捡到一个U盘时,会尝试着插入自己的电脑,当U盘插入后后门可能进入系统 当下载一个软件时,后门可能同时被安装在你的系统中了 当你在网页上点击一个按钮时,后门可能会被安装在你的电脑里 例举你知道的后门如何启动起来(win及linux)的方式? 在开机的时候自启动(Windows注册表) 被设置了定时启动(Linux的crontab) 作为服务启动 被其他主机控制,从而启动 Meterpreter有哪些给你映像深刻的功能? 除了本次实验中完成的获取被控主机的录音、录像、截图、键盘输入记录等功能,还有从被控主机上对相关的文件进行下载和上传,远程操控目标机上的程序运行等功能。

odoo12 centos执行shell脚本监测服务状态崩溃重启

青春壹個敷衍的年華 提交于 2020-03-12 12:42:20
原因: 由于其他原因,或者odoo内部服务自动停止掉,需要一个脚本来监测状态,自动启动。 步骤: 1、在任意目录下新建shell脚本odoodaemon.sh 1 #!/bin/sh 2 # ckconfig: 2345 20 81 3 4 while true; 5 do 6 processExist=`ps aux | grep odoo12 | grep -v "grep"` 7 if [ -z $processExist ];then 8 echo "proecss is restarted" 9 systemctl start odoo12 # 启动程序的脚本所在的绝对路径 10 else 11 echo "process is running" 12 fi 13 sleep 60 #每 60s检查一次 14 done 2、把脚本移动到/etc/rc.d/init.d/下 mv odoodaemon.sh /etc/rc.d/init.d/ 3、给权限 chmod u+x odoodaemon.sh 4、加入到系统服务 chkconfig --add odoodaemon.sh 5、启动 systemctl start odoodaemon 6、加入开启自动启动 chkconfig odoodaemon.sh on 7、查看 chkconfig --list

2019-2020-2 20175320 《网络对抗技术》Exp2 后门原理与实践

余生颓废 提交于 2020-03-12 09:39:09
2019-2020-2 20175320 《网络对抗技术》Exp2 后门原理与实践 一、实验要求 了解nc、meterpreter以及metaspolit的使用方法,并利用以上软件实现以下操作: 1、攻击方获取被攻击方shell。 2、通过对正常软件植入后门程序,实现被攻击者运行带后门的软件时攻击者可以渗透被攻击方的系统。 3、对window以及linux进行设置,使得后门程序能在后台运行。 二、实验目标 1、使用netcat获取主机操作Shell,cron启动。 2、使用socat获取主机操作Shell, 任务计划启动。 3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。 4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。 三、实验过程 1.准备工作 (1)准备好windows以及linux两个虚拟机,并查看两者的ip地址。 (2)关闭windows的防火墙以及杀毒软件。 (3)两边都使用ping命令测试一下连通性。 需要注意的是,我在实验中遇到了linux无法ping通windows但windows可以ping通linux的情况。而这一问题在重新打开并关闭windows防火墙后得到了解决

SHELL脚本 基础一

人盡茶涼 提交于 2020-03-12 08:36:48
SHELL脚本基础 基本都是干货,都是通过书和视频总结的一小部分,里面应该有一些错误; SHELL变量 1.变量:临时储存数据的,该数据是可以进行变化的数据 2.变量的使用:1.多次重复使用的数据,并且在代码中重复,可以用变量来代替该内容 3.没有数据类型 4.变量名=变量值 5.如果打印变量和使用变量使用(&name) 6.unset 变量名 可以取消相应的变量 变量的定义规则: 1.变量名区分大小写 2.变量名中不能使用特殊的符号 3.变量名不能以数字开始 4.等号两边不能有任何空格 5.变量名尽量做到名如其人 6.变量名今年可能大写 echo ${A:2:4} 从0开始计数,从第二开始截取4个字符 命令的的执行结果作为赋值使用 date= $(date + %F) 交互式定义变量(read) read [选项] 变量名 -p 提示用户的信息 -n 提示定义字符数 -s 不显示 -t 定义时长 read 也可以从其他文件读取做为变量使用 有类型的变量赋值 declare 选项 变量名=变量值 经declare修饰过后变量就只有一个 类型相关 -i 整数 -r 定义只读变量 -a 定义普通数组 -A 定义关联数组 -x 将环境通过环境导出 ps -auxf | grep bash (查看bash的父子关系) export和declare -x 都可以导出环境变量 和定义环境变量

源码方式安装软件

强颜欢笑 提交于 2020-03-11 18:58:23
源码包编译安装 ======= Created 星期一 23 十月 2017 一、使用make编译软件前需要安装的包 GCC为GNU编译器套件(GNU Compiler Collection), yum -y install cpp ###cpp为c++库 yum -y install binutils ###二进制工具集,用于创建C库文件和创建静态库 yum -y install glibc ###GNU发布的libc库,即C运行库,其他库都依赖与glibc库 yum -y install glibc-kernheaders yum -y install glibc-common yum -y install glibc-devel yum -y install gcc ### GNU编译器套件,不仅可处理c语言,也可处理多种语言 yum -y install make ###可能系统不一定自带,最好Yum安装以下 二、静态链接库与动态链接库 题外话:函数与方法的区别:函数是大家的函数,直接调用可实现相应功能,无需关心数据结构算法以及自己进行编写,即可供大家使用的。方法是类的方法。静态库和动态库就是由大量的函数组成。 库分为静态链接库和动态链接库(共享库)。 2.1、静态函数库 这类库的名字一般是 libxxx.a ,扩展名为.a;利用静态函数库编译成的文件比较大,因为整个

shell之打印菜单方法实例

狂风中的少年 提交于 2020-03-11 16:50:49
方法1 #!/bin/bash #Author:mcsiberiawolf #Time:2019-02-12 11:15:49 #Name:menu.sh #Version:V1.0 #Description: This is a test script. RETVAR=0 # 定义脚本路径 path=/server/scripts # 如果路径不存在就创建 [ -d "$path" ] && mkdir -p $path # 定义帮助函数 function Usage(){ echo "Usage:$0 argv" return 1 } # 定义安装服务函数 function InstallService(){ if [ $# -ne 1 ]; then Usage fi local RETVAR=0 echo "start installing ${1}." sleep 2 if [ ! -x "$path/${1}.sh" ]; then echo "$path/${1}.sh does not exist or can not be exec." return 1 else $path/${1}.sh return $RETVAR fi } # 定义主函数 function main(){ # 菜单提示 PS3="`echo Pls input the num you