shell脚本 案例

1,写一个循环,ping整个子网的ip。

使用while循环

#!/bin/bash

ip=223

while [ "$ip" -ne "239" ]

do

ping 121.201.0.$ip -c1 && echo "121.201.0.$ip yes" >> ip_list.txt || echo "121.201.0.$ip no" >> ip_list.txt

((ip+=1))

done

使用for循环(推荐)

#!/bin/bash

for ip in 192.168.1.{100..255}

do

ping $ip -c 1 && echo $ip yes >> ./check_ip_network.txt|| echo $ip no >> ./check_ip_network.txt

done

2, 9*9乘法表

#!/bin/bash

for a in {1..9}
do
        for b in {1..9}
        do
                [ $a -ge $b ] && echo -en "$a x $b = $(expr $a \* $b) "
        done
echo ""
done

[[email protected] shell]# sh 9x9.sh
1 x 1 = 1 
2 x 1 = 2 2 x 2 = 4 
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16 
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36 
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64 
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

3. shell跳板机(触发信号后屏蔽信号)

方法1:

1)首先做好ssh key验证,做ssh key免登陆验证

2)实现传统的远程连接菜单选择脚本

3)利用linux信号防止用户在跳板机上操作。

4)用户登陆后既调用脚本。

代码如下:

[[email protected] practical_script]# cat tiaoban.sh 
#!/bin/bash

# function
function trapper ()
{
        trap ‘:‘ INT EXIT TSTP TERM HUP
}
while :
do
        trapper
                clear
                        cat <<menu
# This is a springboard machine, can only be through the springboard 
# machine landing the following system.

Please select the server you want to log on:

1) link 126.201.20.132(TT3)
                                2) exit
menu

read -p "pleas select: " num
case "$num" in
        1)
                echo "126.201.20.132(TT3) landing ..."
                ssh -p 26333 [email protected]
                ;;
        2|*)
                exit
                ;;

esac

done

方法2: root链接服务器,expect 每次重新建立ssh key

###########################################################################################

4. Shell编程之LAMP一键安装脚本实战

[[email protected] shell]# cat autoLAMP.sh 
#!/bin/bash
#auto make install LAMP
#by auto ly 2015

# httpd define path varible
H_FILES=httpd-2.2.31.tar.bz2
H_FILES_DIR=httpd-2.2.31
H_URL=http://mirrors.cnnic.cn/apache/httpd/
H_PREFIX=/usr/local/apache2/

M_FILES=mysql-5.0.41.zip
M_FILES_DIR=mysql-5.0.41
M_URL=http://gyconfigfc.attogames.com/
M_PREFIX=/usr/local/mysql/

# PHP define path variable
P_FILES=php-5.3.28.tar.bz2
P_FILES_DIR=php-5.3.28
P_URL=http://mirrors.sohu.com/php/
P_PREFIX=/usr/local/php5/

if [ -z "$1" ];then
        echo -e "\033[36mPlease Select Install Menu follow:\033[0m"
        echo -e "\033[32m1)Compile and install Apache server:\033[1m"
        echo "2)Compile and install MySQL server"
        echo "3)Compile and install PHP server"
        echo "4)Configure index.php and start the LAMP service"
        echo -e "\033[31mUsage: {$0 1 | 2 | 3 | 4 | help}\033[0m"
        exit
fi

if [ $1 -eq 1 ];then
        wget -c $H_URL/$H_FILES && tar -jxvf $H_FILES && cd $H_FILES_DIR ;./configure --prefix=$H_PREFIX

if [ $? -eq 0 ];then
                make && make install
                echo -e "\033[32mThe $H_FILES_DIR Server Install Successfully!\033[0m"
        else
                echo -e "\033[31mThe $H_FILES_DIR Server Install Failed,Please check ...\033[0m"
        fi
fi

# auto install Mysql
if [ $1 -eq 2 ];then
        wget -c $M_URL/$M_FILES && unzip $M_FILES && cd $M_FILES_DIR ;chmod +x configure && chmod +x install-sh;./configure --prefix=$M_PREFIX

if [ $? -eq 0 ];then
                make && make install
                echo -e "\033[32mThe $M_FILES_DIR Server Install Successfully!\033[0m"
        else
                echo -e "\033[31mThe $M_FILES_DIR Server Install Failed,Please check ...\033[0m"
        fi
fi

# auto install PHP Server
if [ $1 -eq 3 ];then
        wget -c $P_URL/$P_FILES && tar -jxvf $P_FILES && cd $P_FILES_DIR ;./configure --prefix=$P_PREFIX --with-config-file-path=$P_PREFIX/etc --with-mysql=$M_PREFIX --with-apxs2=/usr/local/apache2/bin/apxs

if [ $? -eq 0 ];then
                make && make install
                echo -e "\033[32mThe $P_FILES_DIR Server Install Successfully!\033[0m"
        else
                echo -e "\033[31mThe $P_FILES_DIR Server Install Failed,Please check ...\033[0m"
        fi
fi

if [ $1 -eq 4 ];then
        sed -i ‘/DirectoryIndex/s/index.html/index.php index.html/g‘ $H_PREFIX/conf/httpd.conf
        $H_PREFIX/bin/apachectl restart
        echo "AddType   application/x-httpd-php .php" >> $H_PREFIX/conf/httpd.conf
        IP=`ifconfig eth0|grep "Bcast"|awk ‘{print $2}‘|cut -d: -f2`
        echo "You can access http://$IP/"

cat >$H_PREFIX/htdocs/index.php <<EOF
<?php
phpinfo();
?>
EOF
fi

################################################################################################

时间: 2024-10-14 14:31:02

shell脚本 案例的相关文章

shell脚本案例分析

#!/bin/sh ### GLOBALS IMG_EXT="{png,jpg,gif}" SQL_FILE="my_images_mysql.sql" SQL_INS="INSERT INTO images VALUES (" SQL_IMAGEID_RANGE=0 SQL_IMAGETYPE=1 SQL_NAME="" SQL_IMAGE="" ### ERROR NORMAL=0 ERR_ARGS=1

日常运维工作shell脚本案例

1.list_sys_status.sh显示系统使用的以下信息:主机名.IP地址.子网掩码.网关.DNS服务器IP地址信息 #!/bin/bashIP=`ifconfig eth0 | head -2 | tail -1 | awk '{print $2}' | awk -F":" '{print $2}'`ZW=` ifconfig eth0 | head -2 | tail -1 | awk '{print $3}' | awk -F":" '{print $2

shell脚本案例(四)利用 free 命令精确监控RAM的使用率

需求:利用free命令精确监控RAM的使用率具备知识:grep,free,awk,bc 脚本如下 [[email protected] scripts]# cat mem.sh #!/bin/bash - # free -m 代表着以M单位进行输出,如果内存足够大,那么您应该使用-g参数,容量以GB为单位输出. mem_total=`free -m | grep Mem | awk '{print $2}'` mem_used=`free -m | grep Mem | awk '{print

shell脚本案例(五)利用nmap批量扫描存活主机

利用nmap批量扫描存活主机 知识储备:grep,nmap 一.安装nmap 1.安装编译环境 [[email protected] nmap-7.01]# yum install gcc g++ gcc-c++ -y 2.使用wget下载nmap [[email protected] nmap-7.01]# wget http://nmap.org/dist/nmap-7.01.tar.bz2 3.解压下载的安装包 [[email protected] nmap-7.01]# tar -vxf

企业生产环境shell脚本案例分享

1)Mysql数据库备份脚本(完整备份+异地备份) 一般Mysql数据库备份会采用在MYSQL从库上执行全量备份+增量备份方式.在从库备份避免Mysql主库备份的时候锁表造成业务影响. #!/bin/bash set -e #当脚本有错误时,便停止执行脚本 #备份的数据库名 DATABASES=( "magedu01" "magedu02" ) USER="root" PASSWORD="dbpwd123" MAIL=&quo

20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断

- 20.5 shell脚本中的逻辑判断 - 20.6 文件目录属性判断 - 20.7 if特殊用法 - 20.8/20.9 case判断 # 20.5 Shell脚本中的逻辑判断 - 很多脚本可以直接用命令执行,比如之前的那个 ``` [[email protected] ~]# for i in `seq 1 5`;do echo $i;done 1 2 3 4 5 [[email protected] ~]# for i in `seq 1 5` > do > echo $i > 

六十八、shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断

一.shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if -; then - ;elif -; then -; else -; fi if:如果. then:然后. -gt:大于. -lt:小于. -eq:等于. -ne:不等于.noeq. -ge:大于等于. -le:小于等于. 格式1:如果满足条件a大于3,则输出ok.最常用. # if [ $a -gt 3 ]; then echo ok;

采用shell脚本定时清理Tomcat日志

1 Shell脚本案例 删除超过30天的日志文件 #!/bin/bash log_path=/mnt/software/apache-tomcat-9.0.0.M22/logs d=`date +%Y-%m-%d` d90=`date -d'30 day ago' +%Y-%m-%d` #cd ${log_path} && cp catalina.out $log_path/cron/catalina.out.$d.log #echo > catalina.out rm -rf $l

Linux系统shell脚本编程——生产实战案例

Linux系统shell脚本编程--生产实战案例     在日常的生产环境中,可能会遇到需要批量检查内网目前在线的主机IP地址有哪些,还可能需要检查这些在线的主机哪些端口是开放状态,因此依靠手工来检查是可以实现,但比较费时费力,所以需要结合shell脚本来实现批量检查的功能,那么今天就来做个小小的实验. 1.开发脚本前准备 一般大家都知道,测试主机是否在线,常用的命令无非就是ping.nmap,因此,首先找一个地址来测试下ping命令的效果 [[email protected] scripts]