shell脚本

mysql监控常用shell脚本

主宰稳场 提交于 2019-12-04 08:22:16
#/bin/sh #检测mysql server是否正常提供服务 mysqladmin -u sky -ppwd -h localhost ping #获取mysql当前的几个状态值 mysqladmin -u sky -ppwd -h localhost status #获取数据库当前的连接信息 mysqladmin -u sky -ppwd -h localhost processlist #获取当前数据库的连接数 mysql -u root -p123456 -BNe "select host,count(host) from processlist group by host;" information_schema #显示mysql的uptime mysql -e"SHOW STATUS LIKE '%uptime%'"|awk '/ptime/{ calc = $NF / 3600;print $(NF-1), calc"Hour" }' #查看数据库的大小 mysql -u root -p123456-e 'select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;'

从外网到域控(vulnstack靶机实战)

被刻印的时光 ゝ 提交于 2019-12-04 08:02:13
前言 vlunstack是红日安全团队出品的一个实战环境,具体介绍请访问: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 拓扑结构大体如下: 话不多说,直接开搞.. 外网初探 打开页面后发现是一个Yxcms的站点,关于Yxcms的漏洞可以参考: https://www.freebuf.com/column/162886.html 然后找到后台,随手一个弱口令:admin、123456便进入了后台(实战中也有很多的站点是弱口令,只能说千里之堤溃于蚁穴) 关于Yx后台拿shell的方法还是很简单的,直接在新建模板哪里,将我们的一句话木马添加进去就ok了 比如这样 此时我们连接index.php即可获得shell 此时呢,我们先不往下进行,既然是靶机,我们就应该多去尝试一下发掘它其他的漏洞,蚁剑连接以后可以发现这是一个phpstudy搭建的网站,那么按照经验我们知道应该会有默认的phpmyadmin在,我们尝试访问: 发现猜测的没错,那么默认密码呢,root、root发现竟然也进去了,那么就来复习一下phpmyadmin后台getshell吧。phpmyadmin后台getshell一般有以下几种方式: 1、select into outfile直接写入 2、开启全局日志getshell 3、使用慢查询日志getsehll 4

shell编程基本语法和变量

孤街醉人 提交于 2019-12-04 07:05:12
一.编写shell脚本基本格式 拿最简单的 hello word 举例 .#!/bin/bash echo 'hello world' .#!/bin/bash:告诉计算机,使用bash解释器来执行代码 echo: 打印 二.运行shell脚本 方法一 (推荐使用) chmod 777 myshell.sh #给文件权限 ./myshell.sh #运行文件 方法2 sh myshell.sh 三.注释 单行注释 #内容 多行注释 :<<! 内容 ! 四.定义变量 基本语法 1.定义变量:变量名=变量值 2.撤销变量:unset 变量名 3.声明静态变量:readonly 变量名 #静态变量不能unset 将命令执行结果返回变量 1.A=`ls -la` 反引号 2.A=$(ls -la) 等价于反引号 系统变量: $PATH $HOME $PWD $SHELL $USER 五.设置环境变量 基本语法 export 变量名=变量值 将shell变量输出给环境变量 source 配置文件名称 让修改后的配置信息立即生效 echo $变量值 查看环境变量的值 举例 vim a.sh export a = 111 :wq source a.sh echo $a 111 六.位置参数变量 主要是给shell脚本传参数 $n (功能描述:n 为数字,$0 代表命令本身,$1-$9

[[ $- == *i* ]]了解

只谈情不闲聊 提交于 2019-12-04 06:11:09
解释:环境变量 $- 里如果有字符 i 的话,代表是一个 interactive shell,否则是 non-interactive mode,我们可以简单测试一下: $> [[ $- == *i* ]] && echo "Interactive" || echo "Not interactive" Interactive $> bash -c '[[ $- == *i* ]] && echo "Interactive" || echo "Not interactive" ' Not interactive 理论基础 用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行 shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一 个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来 说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。 在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内

Shell脚本编程

本秂侑毒 提交于 2019-12-04 04:43:09
一、基本 bash shell命令 创建文件 : touch 链接文件:符号链接:是一个实实在在的文件,两个通过符号链接在一起的文件,彼此的内容并不相同。使用ln -s命令。 硬链接:会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但他们从根本上而言是同一个文件。原始文件必须事先存在,使用ln命令。 查看文件类型 : file 查看整个文件 : cat , more , less 查看部分文件 : tail , head 二、更多shell命令 探查进程 : ps , 常用 ps -ef , ps -l 实时监测进程 : top。第一部分显示系统的概况:第一行显示当前时间、系统运行时间、登录的用户数以及系统的平均负载(三个值代表最近1min、5min、15min)如果近15min内的平均负载都很高,说明系统可能有问题。 第二行显示了进程概要信息:有多少进程处在运行、休眠、停止或是僵化状态 下一行显示了CPU的概要信息。 紧跟其后的两行说明了系统内存的状态。第一行是系统的物理内存:总共多少内存,当前用了多少,还有多少。后一行表示同样的信息,不过针对系统交换空间。 最后一行显示当前运行中的进程纤细列表。 PID:进程ID; USER:进程属主名字; PR:进程优先级; NI:进程的谦让值; VIRT:进程占用的虚拟内存总量; RES:进程占用物理内存总量; SHR

shell 字符串比较与脚本 too many arguments 报错

£可爱£侵袭症+ 提交于 2019-12-04 04:35:48
一、问题 最近在写 shell 脚本的时候,遇到了一些小问题,就是我在判断一个字符串是否为空的时候经常报下面的错,程序是正常执行了,但是有这个提示很蛋疼,下面就是看看是什么问题导致的? [: too many arguments 二、问题解析 原始脚本 我的脚本是这样写的 #!/bin/bash list='1 2 4 ad' if [ $list -eq '' ] then echo "empty" else echo "not empty" fi 运行后 [root@wi-mi-2034 scripts]# bash test.sh test.sh: line 3: [: too many arguments not empty 第一个问题: -eq 是用于比较两个数字的,比较字符串要使用 == 。 更改版本一 使用 "==" 进行比较 使用 "==" 进行比较,替换 -eq . #!/bin/bash list='1 2 4 ad' if [ $list == '' ] then echo "empty" else echo "not empty" fi 运行之后 [root@wi-mi-2034 scripts]# bash test.sh test.sh: line 3: [: too many arguments not empty 还是有这个报错,但是经过我的测试发现

shell编程

两盒软妹~` 提交于 2019-12-04 03:52:10
shell编程入门简介 shell是用户与linux操作系统之间沟通的桥梁,用户可以输入命令执行,又可以利用shell脚本去运行 shell种类非常多,常见的shell如下: bourne shell(/usr/bin/sh或/bin/bash) bourne again shell(/bin/bash) C shell(/usr/bin/csh) K shell(/usr/bin/ksh) 不同的shell语言的语法有所不同,一般不能交换使用,最常用的shell是bash,也就是bourne agarn shell,bash由于易用和免费,在日常工作中被广泛使用,也是大多数linux操作系统默认的shell环境 shell脚本及Hello World 要熟练掌握shell语言需要大量的练习,初学者可以用shell打印 “Hello World”来增加仪式感!!! shell编程脚本需要注意以下几点: shell脚本名称命名一般为英文; 不能使用特殊符号,空格来命名 shell脚本要以.sh后缀 不建议shell命名为纯数字,一般以脚本功能命名 shell脚本首写最好#!/bin/bash开头; 以下为第一个脚本: [root@localhost ~]# vim a.sh #!/bin/bash echo "Hello World" 来源: https://www.cnblogs

通过 ulimit 改善系统性能

非 Y 不嫁゛ 提交于 2019-12-04 03:39:51
概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。本文将在后面的章节中详细说明 ulimit 的功能,使用以及它的影响,并以具体的例子来详细地阐述它在限制资源使用方面的影响。 ulimit 的功能和用法 ulimit 功能简述 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。 而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件,也与系统上软件运行的性能有着密不可分的联系。这时,ulimit 可以起到很大的作用,它是一种简单并且有效的实现资源限制的方式。 ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小

通过 ulimit 改善系统性能

谁说胖子不能爱 提交于 2019-12-04 03:39:39
本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来改善系统性能。 概述 系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit 是我们在处理这些问题时,经常使用的一种简单手段。ulimit 是一种 linux 系统的内键功能,它具有一套参数集,用于为由它生成的 shell 进程及其子进程的资源使用设置限制。本文将在后面的章节中详细说明 ulimit 的功能,使用以及它的影响,并以具体的例子来详细地阐述它在限制资源使用方面的影响。 回页首 ulimit 的功能和用法 ulimit 功能简述 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时打开了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。 而实际应用的环境要比这种假设复杂的多,例如在一个嵌入式开发环境中,各方面的资源都是非常紧缺的,对于开启文件描述符的数量,分配堆栈的大小,CPU 时间,虚拟内存大小,等等,都有非常严格的要求。资源的合理限制和分配,不仅仅是保证系统可用性的必要条件

java 执行 shell脚本通过mysql load data导入数据

泪湿孤枕 提交于 2019-12-04 01:06:24
1:load_data_test.sh #!/bin/sh file=$1 load_data_log=/mnt/load_data_test/load.log load_sql="LOAD DATA LOCAL INFILE '/mnt/load_data_test/${file}' IGNORE INTO TABLE t_test CHARACTER SET utf8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\r\n'" mysql 2>>${load_data_log} -uroot -pxxx --local-infile=1 << EOF use app_info; $load_sql; exit EOF echo "$?" exit 备注:$?如果为1表示脚本执行出错,为0表示脚本执行成功。 2:java代码 public static void main(String[] args) { String sh = System.getProperty("shell"); try{ Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(sh,null,null); InputStream stderr =