Linux系统——shell脚本应用示例
传入一个网段地址,自动找出本网段内存活的IP地址。2,将存活的IP地址当作密码来创建Linux用户,用户名格式为:你的名字_数字 3,有几个存活IP地址,就自动创建几个用户 4,最后将创建的用户名和密码写入到/tmp目录下的某文件里
(1)找存活的ip
(2)将ip去除“.”,生成密码,
(3)创建用户,密码
(4)写入Path路径下的文件里(设置两个变量)
#!/bin/bash
Path=/tmp
for ip in 192.168.214.{1..5}
do
ping -c 1 $ip >/dev/null
if [ $? -eq 0 ];then
echo "$ip"
let i++
user=daisy_$i
useradd $user >/dev/null
(1) Passwd=`echo $ip | sed -r 's#[^0-9]##g'`
[ -d $Path ] || mkdir $Path
(2) echo $Pas swd | passwd -- stdin $user
echo "$user:$Passwd">>$Path/user_passwd
fi
done
用户登录验证程序
1、脚本里设置两个用户名和密码
2、让用户从屏幕输入账户和密码进行登录
3,、如果账户输入错误,让该用户继续输入账户,也可以注册用户
4、账户正确,输入密码
5、密码正确,登陆成功
6、同一个账号,密码最多允许输错3次,达3次,账号锁定(此时脚本不能退出)。
7、锁定账号以后,可以继续登录未锁定账号,也可以删除用户
#!/bin/bash
function login(){
USER1="daisy"
PASSWD1="123123"
USER2="helen"
PASSWD2="123456"
lock=""
Path=/tmp
useradd daisy
useradd helen
echo $PASSWD1 | passwd --stdin daisy
echo $PASSWD2 | passwd --stdin helen
while :
do
read -p "please write your username:" user
clear
echo "$lock" | grep -w "$user" &>/dev/null
if [ $? -eq 0 ];then
echo "locked"
continue
fi
if [ $user != "daisy" -a $user != "helen" ];then
echo "invaild username "
read -p "create username or not (choice yes or no):" create
case $create in
yes)
useradd $user
echo "create successfully"
passwd $user
[ $? -eq 0 ] && echo "create successfully"
echo "$user:$passwd" >> $Path/user_passwd
echo "transfer successfully"
exit
;;
no)
continue
;;
*)
echo "invaild number"
;;
esac
else
i=0
while :
do
read -p "please write your password:" passwd
clear
if [ $passwd == $PASSWD1 -a $user == "daisy" ];then
echo "login successfully"
exit
elif [ $passwd == $PASSWD2 -a $user == "helen" ];then
echo "login successfully"
exit
else
let i++
if [ $i -eq 3 ];then
echo "username has locked, please use another unlocked username"
sleep 1
clear
lock=$lock" $user"
sleep 1
read -p "delete username or not(choice yes or no):" delete
case $delete in
yes)
userdel $user
echo "delete successfully"
exit
;;
no)
exit
;;
*)
echo "invaild number"
;;
esac
break
fi
echo "password is wrong"
sleep 1
clear
fi
done
fi
done
}
function test(){
echo "123"
}
function title (){
cat <<FOF
********************
1、登录
2、退出
********************
FOF
}
while :
do
clear
title
read -p "请输入你的选择:" num
clear
case $num in
1)
login
;;
2)
echo "exit"
exit
;;
*)
echo "invaild number"
;;
esac
sleep 2
done
Linux系统——shell脚本应用示例的更多相关文章
- Linux系统Shell脚本编程
1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处 ...
- Linux系统——shell脚本
shell脚本编程 作用:通过命令行解析的方式,自动执行设定好的程序或命令代码.(若将脚本挂到定时任务中,就会自动在非工作时间里自动触发执行程序) Shell脚本文件以“.sh”结尾 规范的Shell ...
- linux服务器批量部署应用系统shell脚本(Tomcat/jetty)
linux服务器批量部署应用系统shell脚本: 1.请更换代码内的服务器地址(Tomcat或jetty服务器) serverRoot=/home/undoner/java_tool/apache-t ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- 从windows到linux的shell脚本编码和格式问题
从windows到linux的shell脚本编码和格式问题 从windows到Linux的shell脚本编码和格式问题 1.异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh s ...
- Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间
Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...
- Linux:从windows到linux的shell脚本编码和格式
从windows到linux的shell脚本编码和格式问题 异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh start.sh,时会报Command not found等等的错误, ...
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- 使用C#给Linux写Shell脚本(下篇)
在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...
随机推荐
- 从 Microsoft Dynamics CRM 4.0 server迁移到 Microsoft Dynamics CRM 2013 Server
不能就地升级早于 Microsoft Dynamics CRM Server 2011 的版本号,比方 Microsoft Dynamics CRM 4.0 server.可是,能够在升级过程中使用 ...
- Android 防破解技术简介
Android 防破解技术简介 这几年随着互联网的不断发展,Android App 也越来越多!但是随之而来的问题也越来越多,这其中比较令人头疼的问题就是:有些不法分子利用反编译技术破解 App,修改 ...
- 动态规划——最长公共上升子序列LCIS
问题 给定两个序列A和B,序列的子序列是指按照索引逐渐增加的顺序,从原序列中取出若干个数形成的一个子集,若子序列的数值大小是逐渐递增的则为上升子序列,若A和B取出的两个子序列A1和B1是相同的,则A1 ...
- CSS文本对齐text-align详解
1.语法 text-align具体参数如下: 语法:text-align : left | right | center | justify 说明:设定元素内文本的水平对齐方式. 参数:left : ...
- vue通信
组件实例的作用域是孤立的. 一.父子通信 父组件通过props向下传递数据给子组件,子组件通过events给父组件发送消息. 要让子组件使用父组件的数据,我们需要通过子组件的props选项.prop是 ...
- Openstack实现共有云VPC的SDN网络
Neutron的第二个网络模型,自服务网络 参考官方文档:https://docs.openstack.org/newton/zh_CN/install-guide-rdo/neutron-contr ...
- Ubuntu 16.04修改配置静态IP和DNS
Ubuntu 16.04修改配置静态IP和DNS 1.修改interfaces 文件 sudo gedit /etc/network/interfaces 2.添加 例如: auto enp0s25 ...
- 设计模式之Factory工厂模式
在上一章,模板模式中,我们在父类规定处理的流程,在子类中实现具体的处理.如果我们将该模式用于生成实例,便演变成了Factory模式,即工厂模式. 在Factory模式中,父类决定实例的生成方式,但并不 ...
- Bad Hair Day---poj3250(栈的运用)
题目链接:http://poj.org/problem?id=3250 题意: n个牛排成一列向右看,牛i能看到牛j的头顶,当且仅当牛j在牛i的右边并且牛i与牛j之间的所有牛均比牛i矮. 设牛i能看到 ...
- Linux命令(基础3)
关机重启 reboot poweroff ============================ linux命令分类 1.针对不同文件的管理命令 1.1 目录 FHS 文件系统层次化标准 绝对路径: ...