shell--简单的用户管理脚本示例

shell–简单的用户管理脚本示例

在工作中,我们经常会重复的使用很多命令去维护服务器,如果我们把这些重复的命令,写成一个个的shell脚本,就会大大的提升我们的工作效率。

有的时候写了很久的脚本,我们很容易忘记这个脚本是谁写的了,或者这个脚本是干什么的了,所以我们编辑一下.vimrc这个文件,让我们vim创建的.sh脚本都自动带有创建时间和创建人,这样也方便我们后期进行脚本的管理。

设置方法:

在用户的家目录下,创建一个.vimrc的文件,然后将下面的内容粘贴进去,退出当前远程exit重进即可生效。

[root@centos7 ~]# pwd
/root
[root@centos7 ~]# vim .vimrc

.vimrc的内容

set ignorecase
set cursorline
set autoindent
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
	if expand("%:e") == 'sh'
	call setline(1,"#!/bin/bash") 
	call setline(2,"#") 
	call setline(3,"#********************************************************************") 
	call setline(4,"#Author:		lichunpeng") 
	call setline(5,"#QQ: 			492739915") 
	call setline(6,"#Date: 			".strftime("%Y-%m-%d"))
	call setline(7,"#FileName:		".expand("%"))
	call setline(8,"#URL: 			http://www.lichunpeng.cn")
	call setline(9,"#Description:		The test script") 
	call setline(10,"#Copyright (C): 	".strftime("%Y")." All rights reserved")
	call setline(11,"#********************************************************************") 
	call setline(12,"") 
	endif
endfunc
autocmd BufNewFile * normal G

效果展示
.vimrc

下面是一些工作中会遇到的一些用户管理的脚本。

1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来

#!/bin/bash
#
#********************************************************************
#Author:                lichunpeng
#QQ:                    492739915
#Date:                  2019-10-29
#FileName:             usershell.sh
#URL:                   http://www.lichunpeng.cn
#Description:          The test script
#Copyright (C):         2019 All rights reserved
#********************************************************************
COL="\033[$[RANDOM%7+31]m"
LOR="\033[0m"

User_Number=`grep -v "/sbin/nologin" /etc/passwd | wc -l`
User_List=`grep -v "/sbin/nologin" /etc/passwd | cut -d: -f1`

echo -e "您系统下默认shell为非/sbin/nologin的用户个数为:$COL $User_Number $LOR "
echo -e "这些用户为:\n$COL$User_List $LOR"    

效果展示:
usershell.sh

多次执行脚本会变颜色哟!

2.查出用户UID最大值的用户名、UID及shell类型

[root@centos7 data]# cat useruid.sh 
#!/bin/bash
#
#********************************************************************
#Author:		lichunpeng
#QQ: 			492739915
#Date: 			2019-10-29
#FileName:		useruid.sh
#URL: 			http://www.lichunpeng.cn
#Description:		The test script
#Copyright (C): 	2019 All rights reserved
#********************************************************************
COL="\033[$[RANDOM%7+31]m"
LOR="\033[0m"

Max_User_UID=`cat /etc/passwd | cut -d: -f1,3,7 | sort -t: -k2 -nr | head -n 1|cut -d: -f2`
Max_User_Name=`cat /etc/passwd | cut -d: -f1,3,7 | sort -t: -k2 -nr | head -n 1|cut -d: -f1`
Max_User_Shell=`cat /etc/passwd | cut -d: -f1,3,7 | sort -t: -k2 -nr | head -n 1|cut -d: -f3`

echo -e "您系统下UID最大的用户名为:$COL$Max_User_Name$LOR"
echo -e "您系统下UID最大的用户的UID为:$COL$Max_User_UID$LOR"
echo -e "您系统下UID最大的用户默认shell类型为:$COL$Max_User_Shell$LOR"


效果演示
useruid.sh

3.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

[root@centos7 data]# ss -nt | tr -s " " : | cut -d: -f6 |tr -d "[:alpha:]" | uniq -c | sort -nr
      3 192.168.3.5
      1 192.168.3.231
      1 

4.编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息

#!/bin/bash
#
#********************************************************************
#Author:		lichunpeng
#QQ: 			492739915
#Date: 			2019-10-29
#FileName:		createuser.sh
#URL: 			http://www.lichunpeng.cn
#Description:		The test script
#Copyright (C): 	2019 All rights reserved
#********************************************************************
COL="\033[$[RANDOM%7+31]m"
LOR="\033[0m"

[ 0 -eq "$#" ] && { echo "Usage: `basename $0` USERNAME" ; exit 10;}
id $1 &> /dev/null && { echo -e "用户$COL $1 $LOR 已经存在!" ; exit 20;}
useradd $1 &> /dev/null && echo -e "$COL $1 $LOR 用户已经创建成功!" ; id $1 || echo "出现了一些错误!" ; exit 30


效果演示
createuser.sh

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值