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 ...
随机推荐
- 还是PHPExcel问题
//设置自动设置宽度,但是对中文不起作用..(中文自动长还在研究当中) $objPHPExcel->getActiveSheet()->getColumnDimension('A')-&g ...
- pybot/robot命令参数说明【dos下执行命令pybot.bat --help查看】
Robot Framework -- A generic test automation framework Version: 3.0 (Python 3.4.0 on win32) Usage: r ...
- Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication 解决办法
相信很多人都遇到过这个问题,用Android Studio正在运行程序的时候,突然不知道什么原因,报一个找不到application或者找不到activity的错误(java.lang.ClassNo ...
- Android Studio添加assets文件夹
Step #1:调出项目结构管理区域 View->Tool Windows->Project Step #2:结构管理区域选择“Project” Step #3:新建"asset ...
- Django学习笔记第十篇--实战练习六--发送邮件
一.发送邮件需要引入的包依赖文件(Django1.8 Python2.7) from django.core.mail import send_mail,send_mass_mail 其中send_m ...
- Map<String, String>的数据处理以及ListView的适配器
Map<String, String> map = new HashMap<String, String>(); map.put("key1", " ...
- [VS2015].NET4.0环境下使用.NET2.0程序集,使用sqlite时报异常 出现“混合模式程序集异常”
在.net 4.0环境下使用sqlite时报异常 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集其调用的方法是从sqli ...
- 运用JS设置cookie、读取cookie、删除cookiev
JS设置cookie: 假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为: document.cookie=&q ...
- 【转】Spring Boot 日志配置(超详细)
更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. [toc] 简书不支持目录,截图一张. image.png 默认日志 Logback: 默认情况 ...
- java中 synchronized 的使用,确保异步执行某一段代码。
最近看了个有关访问网络url和下载的例子,里面有几个synchronized的地方,系统学习下,以下内容很重要,记下来. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一 ...