shell示例(三)

简介

shell示例总结。

shell脚本示例

示例1:使用交互式方法批量添加用户

代码:

#!/bin/bash
echo "**************************"
read -p "请输入用户名:" name
read -p "请输入用户数:" num
read -p "请输入用户密码:" pas
echo "**************************"
for(( i=1; i<=$num; i++ ))
do
        useradd -M $name$i
        echo $pas|passwd --stdin $name$i >/dev/null 2>&1
        echo "user $name$i is created successfully"
done
tail -$num /etc/passwd

示例2 :加法计算器

代码:

#!/bin/bash
if [ $# -le 0 ];then
        echo "请输入参数"
        exit 0
fi
sum=0
while [ $# -gt 0 ]
do
        sum=$(expr $sum + $1)
        #sum=$[$sum + $1] 
        shift 1
done
echo "the result is $sum"

示例3:mysql 自动化备份脚本

代码:

#!/bin/bash
#define path
bakdir=/data/mysql/`date +%Y-%m-%d`
mysqldb=tudou
mysqlusr=root
mysqlpw=123456
#must use root run this scripts
if [ ! $USER == "root" ];then
        echo "the scropts must use root run"
        sleep 2
        exit 0
fi
#mkdir dir
if [ ! -d $bakdir ];then
        mkdir -p  $bakdir
else
        echo "$bakdir is exist"
        exit
fi
#use mysqldump backup mysql
mysqldump -u$mysqlusr -p$mysqlpw $mysqldb>$bakdir/${mysqldb}_db.sql
cd $bakdir;tar -zcf ${mysqldb}_db.tar.gz *.sql
#delete *.sql file
#delete 30 days ago file
[ $? -eq 0 ]&&echo "mysql backup sueccssfully"
cd /data/mysql;find . -mtime +30 -type d -exec rm -rf {} \;
echo "30 days ago dir is deleted" 

示例4:nginx 服务启动脚本

代码:

#!/bin/bash
#nginx edition 1.12.2
path=/usr/local/nginx
desc="nginx daemon"
name=nginx
dae=$path/sbin/$name
config=$path/conf/$name.conf
pid=$path/logs/$name.pid
scriptsname=/etc/init.d/$name
do_start(){
	$dae -c $config ||echo "nginx is running"
}
do_stop(){
        $dae -s stop ||echo  "nginx is not running"
}
do_reload(){
        $dae -s reload ||echo "nginx can't reload"
}
[ -x $dae ]||exit 0
case $1 in
start)
	echo -n "$desc:$name starting"
	do_start
	echo "."
	;;
stop)
	echo -n "$desc:$name stopping"
	do_stop
	echo "."
	;;
	
relead)
	echo -n "$desc:$name reloading"
	do_reload
	echo "."
	;;
restart)
	echo -n "$desc:$name restarting"
	do_stop
	do_start
	echo "."
	;;
*)
	echo "please input start|stop|reload|restart"
	exit 3
	;;
esac

示例5:使用交互式方法批量删除用户

代码:

#!/bin/bash
echo "**************************"
read -p "请输入删除用户名:" name
read -p "请输入删除用户数:" num
echo "**************************"
for(( i=1; i<=$num; i++ ))
do
 if /usr/bin/id $name$i>/dev/null 2>&1;then

        userdel $name$i
        echo "user $name$i is deleted"
 else
        echo "user $name$i is not exist"
 fi
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值