shell实战(1)

1.批量生成随机字符文件名案例

使用for循环在/sixijie 目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串sxj,名称示例如下:

[[email protected] ~]# ls /sixijie
4Gh7wbJZLz_sxj.html  g1XnFA7Itn_sxj.html  JLfS4JZxHT_sxj.html  
qn6liXYYae_sxj.html  SNtsQaLfJW_sxj.html  lG4JkU3dYv_sxj.html
f36PdmohfI_sxj.html  jbORiq2wZZ_sxj.html  sDVwwL7WX0_sxj.html  tX7bi+8MyP_sxj.html

2.批量改名特殊案例

将第一题中结果文件名中的sxj字符串全部改成sixijie(最好用for循环实现),并且将扩展名html全部改成大写。


3.批量创建特殊要求用户案例

量创建10个系统帐号test01-test10并设置密码


4.扫描网络内存活主机案例

写一个Shell脚本,判断10.0.0.0/24网络里,当前在线的IP有哪些?


5.解决DOS攻击生产案例

写一个Shell脚本解决DOS攻击生产案例

题目来源于网络


1.sh

#!/bin/bash

# Batch generation of random character file name case

# Author sixijie

mkdir /sixijie &> /dev/null

for ((i=1;i<=10;i++));do
        pre=$(openssl rand 100 | base64 | sed ‘s/\\/1/g‘ | sed ‘s/\//2/g‘ | head -c 10)
        touch /sixijie/${pre}_sxj.html
done
2.sh

#!/bin/bash

# Batch rename special case

# Author sixijie
cd /sixijie

for i in `ls /sixijie` ; do
    pre=$(echo $i | awk -F ‘_‘ ‘{printf $1}‘)
    mv $i ${pre}_sixijie.HTML
done
3.sh

#!/bin/bash

# Batch create special requirements user case

# Author sixijie

password=$(cat /dev/urandom | sed ‘s/[^a-zA-Z0-9]//g‘ | strings -n 5 | head -n 1)

for i in {1..10} ; do
        useradd test$i
        echo $password | passwd test$i --stdin
done
4.sh

#!/bin/bash

# Scanning network memory live host case

# Author sixijie

for i in {1..10} ; do
   ping -c 1  -w 1 10.0.0.$i &> /dev/null
   res=$(echo $?)
   if [ $res -eq 0 ] ; then
      echo "10.0.0.$i oneline"
   else
      echo "10.0.0.$i dead"
   fi
done
5.sh

#!/bin/bash

# Solve the production case of DOS attack

# Author sixijie

for i in $(netstat -anp | grep -i ‘:80‘ | grep -i ‘established‘ | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | awk ‘{if ($1>30) {print $2}}‘)
do
   iptables -A INPUT -p tcp -s $i -j DROP
done
时间: 2024-12-18 23:05:11

shell实战(1)的相关文章

企业Shell实战-MySQL分库分表备份脚本

本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.html 企业Shell实战-MySQL分库分表备份 今天是2015年的最后一天,大家都开心的跨年,而我还在苦逼的呵呵-省略 此处内容来自老男孩教育oldboy以及老男孩26期王续精彩分享整理而来  为表示感谢,特整理此篇博文分享给大家! 项目联系笔者QQ:572891887   也可以加入架构师交流群:

shell实战题,你能全部做出来吗?

18道shell高级编程企业面试题 http://oldboy.blog.51cto.com/2561410/1665163 21道运维人员必会shell面试题 http://oldboy.blog.51cto.com/2561410/1632876 企业编程问题shell解决实战 http://oldboy.blog.51cto.com/2561410/1718607 利用shell解决实战问题 http://oldboy.blog.51cto.com/2561410/1712768 shel

(转)企业Shell实战-MySQL分库分表备份脚本

本文来自http://www.xuliangwei.com/xubusi/252.html 免费视频讲解见 http://edu.51cto.com/course/course_id-5064.html 企业Shell实战-MySQL分库分表备份 今天是2015年的最后一天,大家都开心的跨年,而我还在苦逼的呵呵-省略 此处内容来自老男孩教育oldboy以及老男孩26期王续精彩分享整理而来  为表示感谢,特整理此篇博文分享给大家! 项目联系笔者QQ:572891887   也可以加入架构师交流群:

shell实战之日志脱敏

本次实战目标为日志脱敏,将日志目录内的所有文件进行处理,凡是涉及到卡号和密码的信息,一律以“*”号替代,要替代的内容都从对应的标签内获取,本脚本执行目录 drwxr-xr-x 5 root root 4096 May 31 20:20 log -rw-r--r-- 1 root root 57 May 31 20:20 cfg.log -rw-r--r-- 1 root root 3 May 31 20:28 cfg.time -rwxr-xr-x 1 root root 1625 May 31

shell实战:内置(built-in)变量

shell领域内,变量的作用不言而喻. 内置变量,是不需要在程序中声明,就自动存在的,随时可以访问. Shell 的环境变量分为 set, env 两种,其中 set 变量可以通过 export 工具导入到 env 变量中.其中,set 是显示设置shell变量,仅在本 shell 中有效:env 是显示设置用户环境变量 ,仅在当前会话中有效.换句话说,set 变量里包含了 env 变量,但 set 变量不一定都是 env 变量.这两种变量不同之处在于变量的作用域不同.显然,env 变量的作用域

shell实战:多种方式实现获取列内容

自己不是专业的linux,平时工作中也不用linux编程,自学一些linux shell编程,忘了学,学了忘,效率不高.今天权当复习吧. 想想这样一个情景吧,获取某一行的部分列值. 考虑这样的输入:"root:x:0:0:root:/root:/bin/bash",现在我们获取用户及shell信息.自己暂时想到的5种实现方式. #!/bin/bash ############################################## #第二种实现 普通循环 #########

企业Shell实战-批量检查多个网站地址是否正常

批量检查多个网站地址是否正常 要求:shell数组方法实现,检测策略尽量模拟用户访问思路 http://www.etiantian.org http://www.taobao.com http://oldboy.blog.51cto.com http://10.0.0.7 思路: 1.url列表作为数组 2.check_url 3.判断输出. 解答: 脚本如下: [[email protected] oldboy26]# cat ms6.sh  #!/bin/bash [ -f /etc/ini

慕课网shell实战笔记

shell脚步源代码: [[email protected]_ECS imooc_shell]$ ls check_http_log.sh  check_nginxserver.sh  master_control.sh  system_info.sh master_control.sh:为主控脚步,其它脚步由此脚本调用 ############################################## # File Name: master_control.sh # Author: 

【Shell实战】定期清理日志文件的shell脚本

功能描述:清理/var/log/路径下的messages历史日志文件(messages-date),但不清理messages文件本身 依赖要求:服务器上安装了bc模块 1 # clean_logs.sh 2 #!/bin/bash 3 4 # ========================================== 5 # 功能:清理/var/log/路径下的messages历史日志文件(messages-date),但不清理messages文件本身 6 # 方法:配合crontab