前段时间,公司服务器来了一批新机器需要大量的创建新帐号,又因为系统各有区别。所以打算用bash脚本实现批量创建帐号。
在创建帐号的同时,还要把客户端配置autofs,也就是需要使用时才挂载,一段时间不使用挂载点自动移除。而客户端的生产数据实际是通过挂载服务器上的目录,统一保存在服务器上。
优点:通过挂载的方式,可以确保客户端不需要配置大硬盘。所有数据都保存在服务器端,有利于数据的统一管理与备份。
实例脚本,在两种类型机台(HP93K,CATC)上创建(用户名/UID)及自动挂在服务器上的目录到本地。
#!/bin/bash
#输入三个参数:用户名,UID及机台类型
read -p "Please input Username:" username
read -p "Please input Uid:" uid
read -p "Please input Workstationtype:" workstationtype
if [ "$workstationtype" != "" ] ; then
#截取首字母
first=${workstationtype:0:1}
case $first in
H)
#echo 'H';;
#把小写字母转换为大写
upperusername="$(echo $username | tr '[:lower:]' '[:upper:]')"
if [ "$username" != "" ] && [ "$uid" != "" ] ; then
echo 'create account ' + $username
echo 'account UID' + $uid
mkdir /var/home
mkdir /var/home/$username
useradd -u $uid -d /var/home/$username -s /bin/csh $username
passwd $username
mkdir /home/$username
echo '/home/'$username' '/etc/auto.$username >> /etc/auto.master
touch /etc/auto.$username
echo 'production -rw,bg,soft,rsize=32768,wsize=32768 netapp1
:/vol/vol3/'$upperusername'/production/'$workstationtype > /etc/auto.$username
echo 'ftdatalog -rw,bg,soft,rsize=32768,wsize=32768 netapp1:
/vol/vol4/'$upperusername'/ftdatalog/'$workstationtype >> /etc/auto.$username
chown $username /home/$username
/etc/init.d/autofs restart
else
echo "Please input parameters"
exit 1
fi;;
C)
useradd -u $uid -d /var/home/$username -s /bin/csh $username
passwd $username
echo '/export/home'$username'production -soft,bg,timeo=200,r
w netapp1:/vol/vol3/'$upperusername'production/CAT' >> /etc/auto_direct
echo '/export/home'$username'ftdatalog -soft,bg,timeo=200,rw
netapp1:/vol/vol4/'$upperusername'ftdatalog/CAT' >> /etc/auto_direct
/etc/init.d/autofs stop
/etc/init.d/autofs start
cd /var/yp
/usr/ccs/bin/make all
esac
else
echo "Please input workstationtype"
exit 1
fi