首页 > 代码库 > shell实战(1)

shell实战(1)


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


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

[root@centos6 ~]# 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


本文出自 “似水流年” 博客,请务必保留此出处http://sixijie123.blog.51cto.com/11880770/1880332

shell实战(1)