055-批量建立任意用户在主机中

工做中确定会有建立用户的需求,少的咱们能够建立,可是用户多了呢?bash

1.脚本

如下陈述解决:服务器

a.如何将输入的用户名和密码引用到脚本ssh

b.如何将用户名和密码显现出来而且打印出来oop

c.如何判断已经存在的用户,无需重复建立密码spa

#!/bin/bash
USERADD=/usr/sbin/useradd
PASSWD=/usr/bin/passwd
CUT=/bin/CUT
USER_INFO=/server/scripts/addusers.txt

while read LINES
do
  USERNAME=` echo $LINES |cut -f1 -d' '`
  PASSWORD=` echo $LINES |cut -f2 -d' '`
  useradd $USERNAME
  if [ $? -ne 0 ]
then
  echo "$USERNAME is exists"
else
  echo  $PASSWORD | passwd --stdin $USERNAME
fi


done < $USER_INFO

addusers.txt中文件的内容code

[root@cnsz142728 scripts]# cat addusers.txt 
mumu 123456
kaka 123456
lele 123456

 

2.分析拆解过程

2.1 用for语句能够达到目的么?

[root@cnsz142728 scripts]# cat useradd_for01.sh 
#!/bin/bash
for LINES in `cat addusers.txt`
do
 echo $LINES
 let COUNT+=1
done
echo 
echo $0 looped $COUNT times
[root@cnsz142728 scripts]# ./useradd_for01.sh 
mumu
123456
kaka
123456
lele
123456

./useradd_for01.sh looped 6 times

2.2 for语句不行,改用while语句

[root@cnsz142728 scripts]# ./useradd_for01.sh 
mumu
123456
kaka
123456
lele
123456

./useradd_for01.sh looped 6 times
[root@cnsz142728 scripts]# cat useradd_while01.sh 
#!/bin/bash
COUNT=0
while read LINES
do
   echo  $LINES
   let COUNT+=1
   done < addusers.txt
echo
echo "$0 looped $COUNT times"
[root@cnsz142728 scripts]# ./useradd_while01.sh 
mumu 123456
kaka 123456
lele 123456

./useradd_while01.sh looped 3 times

2.3 显示出用户名和密码

[root@cnsz142728 scripts]# cat useradd_while02.sh 
#!/bin/bash
while read LINES
do
   USERNAME=`echo $LINES | cut -f1 -d' ' `
   PASSWORD=`echo $LINES | cut -f2 -d ' '`
   echo -n "USERNAME:$USERNAME PASSWORD:$PASSWORD"
  echo 
done < addusers.txt
  
[root@cnsz142728 scripts]# ./useradd_while02.sh 
USERNAME:mumu PASSWORD:123456
USERNAME:kaka PASSWORD:123456
USERNAME:lele PASSWORD:123456

 

拓展:结合ssh分发脚本,事先编写好,就可以达到多台服务器操做server

相关文章
相关标签/搜索