linux脚本

Linux系统防CC攻击自动拉黑IP增强版Shell脚本 《Linux系统防CC攻击自动拉黑IP增强版Shell脚本》来自张戈博客

本小妞迷上赌 提交于 2020-01-21 20:26:41
前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护。 前天写的Shell脚本是加入到crontab计划任务执行的,每5分钟执行一次,今天实际测试了下,可还是可以用的,但是感觉5分钟时间有点过长,无法做到严密防护。于是稍微改进了下代码,现在简单的分享下! 一、Shell代码 Shell #!/bin/bash #Author:ZhangGe #Desc:Auto Deny Black_IP Script. #Date:2014-11-05 #取得参数$1为并发阈值,若留空则默认允许单IP最大50并发(实际测试发现,2M带宽,十来个并发服务器就已经无法访问了!) if [[ -z $1 ]];then num=50 else num=$1 fi #巧妙的进入到脚本工作目录 cd $(cd $(dirname $BASH_SOURCE) && pwd) #请求检查、判断及拉黑主功能函数 function check(){ iplist=`netstat -an |grep ^tcp.*:80|egrep -v 'LISTEN|127.0.0.1'|awk -F"[ ]

将Python脚本打包成可执行文件

混江龙づ霸主 提交于 2020-01-21 14:45:22
Python是一个脚本语言,被解释器解释执行。它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的) .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。 可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提 供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。 本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,其它仅作比较和参考。 Freezing Your Code 各种打包工具的对比如下(来自文章 Freezing Your Code ): Solution Windows Linux OS X Python 3 License One-file mode Zipfile import Eggs pkg

centos7 安装稳定版docker 脚本

偶尔善良 提交于 2020-01-21 13:05:29
以ROOT账号运行 #!/bin/bash yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine && yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 && yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo && yum -y install docker-ce docker-ce-cli containerd.io && systemctl start docker && docker -v 来源: CSDN 作者: INK_FUNC 链接: https://blog.csdn.net/INK_FUNC/article/details/104060760

linux下使用smtp+shell脚本实现服务器存活状态监控

时间秒杀一切 提交于 2020-01-21 01:20:49
简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是在Internet传输email的事实标准, SMTP是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者,然后消息文本会 被传输。SMTP使用TCP端口25。 一、配置环境 [root@ser ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) #查看系统环境 [root@ser ~]# systemctl stop firewalld #停止firewall防火墙服务 [root@ser ~]# systemctl disable firewalld #禁止firewall防火墙服务开机自动启动功能 [root@ser ~]# firewall-cmd --state not running #查看防火墙运行状态,确认防火墙被关闭。 vi /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targeted SELINUX=disabled :wq! #关闭selinux,保存退出 [root@ser ~]# setenforce 0 #临时关闭selinux,重启失效 [root@ser ~]# getenforce Disabled

用expect做自动应答脚本

安稳与你 提交于 2020-01-20 18:35:47
Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools)。使用它系统管理员可以创建脚本用来实现对命令或程序提供输入,而这些命令和程序是期望从终端(terminal)得到输入,一般来说这些输入都需要手工输入进行的。 Expect则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。 需要安装expect、tcl包: yum install expect tcl 示例脚本: 1 #!/usr/bin/expect、 2 set timeout 10 3 set username [lindex $argv 0] 4 set password [lindex $argv 1] 5 set host [lindex $argv 2] 6 spawn ssh $username@$host 7 expect "assword:" 8 send "$password\r" 9 expect "#" 10 send "touch a.txt\r" 11 send "touch b.txt\r" 12 send "touch c.txt\r" 13 send "touch d.txt\r" 14 send "exit\r" 15 expect eof 16

将Python脚本打包成可执行文件

江枫思渺然 提交于 2020-01-18 19:24:17
Python是一个脚本语言,被解释器解释执行。它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的) .pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。 可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉Ta即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows,Linux,Mac,...)。 本文主要就是介绍最后一种方式,.py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式,本文重点介绍PyInstaller,其它仅作比较和参考。 Freezing Your Code 各种打包工具的对比如下(来自文章 Freezing Your Code ): Solution Windows Linux OS X Python 3 License One-file mode Zipfile import Eggs pkg

Python - pytest:

喜欢而已 提交于 2020-01-18 16:14:51
快速入门 pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高。 pytest特点 入门简单易上手,文档支持较好。 支持单元测试和功能测试。 支持参数化。 可以跳过指定用例,或对某些预期失败的case标记成失败。 支持重复执行失败的case。 支持运行由unittest编写的测试用例。 有很多第三方插件,并且可自定义扩展。 方便和支持集成工具进行集成。 安装 pip install pytest 测试 C:\Users\Anthony>pytest --version This is pytest version 5.2.2, imported from c:\python36\lib\site-packages\pytest.py 在测试之前要做的准备 我的演示脚本处于这样一个的目录中: M:\py_tests\ # 我的是M盘的 py_tests 目录,所有操作都在 py_tests 目录内完成 ├─scripts │ ├─test_case_dir1 │ │ ├─test_case_02.py # 用例脚本文件 │ │ └─__init__.py │ ├─test_allure_case.py # 脚本文件 │ ├─test_case_01.py # 脚本文件 │ └─__init__.py ├─report

shell基础使用

社会主义新天地 提交于 2020-01-18 12:31:15
2、shell 2.1、shell基础正则表达式 ​ 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。并规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式( Regular Expression ) 。 2.1.1、普通元字符 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“ n ”匹配字符“ n ”。“ \n ”匹配一个换行符。串行“ \\ ”匹配“ \ ”而“ \( ”则匹配“ ( ”。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“ \n ”或“ \r ”之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“ \n ”或“ \r ”之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo 能匹配“ z ”以及“ zoo ”。 等价于{0,}。 + 匹配前面的子表达式一次或多次。例如,“ zo+ ”能匹配“ zo ”以及“ zoo ”,但不能匹配“ z ”。+等价于{1,}。 ? 匹配前面的子表达式零次或一次。例如,“ do(es)?

SHELL脚本实现分区

断了今生、忘了曾经 提交于 2020-01-18 02:52:40
写一个脚本(前提:请为虚拟机新增一块硬盘,架设它为/dev/sdb),为指定的硬盘创建分区 1,列出当前系统上所有的磁盘,让用户选择,如果选择quit则退出脚本;如果用户选择错误,就让用户重新选择 2,档用户选择后,提醒用户确认接下来的操作可能会损坏数据,并请用户确认:如果用户选择y就继续,n就退出;否则,让用户重新选择; 3,抹除那块硬盘上的所有分区(提示,抹除所有分区后执行sync命令,并让脚本睡眠3秒后在分区),并为其创建三个主分区,第一个为20M,第二个为512M,第三个为128M,切第三个为swap分区类型;(提示:将分区命令通过echo传给fdisk即可实现) #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning:\033[0m" fdisk -l 2> /dev/null | grep -o "^Disk /dev/[sh]d[a-z]" read -p "Your Choose:" PARTDISK if [ $PARTDISK == 'quit' ];then echo "quit" exit 7; fi until fdisk -l 2> /dev/null | grep -o "Disk /dev/[sh]d[a-z]" | grep "^Disk $PARTDISK$" &> /dev

linux脚本相关: Syntax error: end of file unexpected (expecting \"then\") 提示错误

穿精又带淫゛_ 提交于 2020-01-17 16:44:59
今天写了个linux脚本,判断某进程是否已经运行,代码如下: #!/bin/sh pid=$(ps aux | grep "java -jar hello.jar" | grep -v "grep" | sed -n '1P' | awk '{print $2}' ) if [ -z $pid ] ; then echo "there isn't this process!" else echo $pid fi 如法应该是ok的,但总是报错: Syntax error: end of file unexpected (expecting "then") 上网查了下 大概是因为我在windows下些的脚本,windows和linux的回车换行时不一样的字符,所以脚本在解释时会出现问题。 在windows里,换行用的两个符号,回车换\r行符号\n,在linux下只需一个符号\n就可以了. 有个叫 dos2unix 的工具,可以解决这问题。用法是这样的: dos2unix filename; 但我用的是ubuntu系统 Ubuntu 下默认没有安装dos2unix工具,而且也没有一个叫这个名字的工具(我在solaris里用过dos2unix,不知道为啥Ubuntu没有)。但是有一个替代工具——tofrodos , 下面就说一下它的安装和使用。 当然还是apt安装啦。 (1