Red Hat下perl寫的添加帳號的腳本

#!/usr/bin/perl
use IPC::Run;
MENU:{
print "\033[2J";
print "\033[0;0H";
chomp($who=`whoami`);
chomp($date=`date +%D`);
print "\n                               系統資訊課制作\n";
print "\n\n不要想搗亂我知道你是:$who       今天:$date  天氣:daowaimiankan\n";
print "\n";
print "*" x 70,"\n";
print "\n     <1>.單個帳號新增                     <2>.批量帳號新增\n";
print "\n     <3>.刪除帳號                         <4>.密碼初始化\n";
print "\n     <0>.退出\n\n";
print "*" x 70,"\n";
print "請作選擇:";

AGAIN:{chomp($i=);
if ($i==1)
   {&singadd}
elsif($i==2)
   {&batchadd}
elsif($i==3){
    &deleteuser}
elsif($i==4){
    &initpasswd}
elsif($i==0){
    exit;}
else
   {print "眼睛睜大點有$i嗎?(* *)\n";
     redo AGAIN;}
}
}

 sub singadd {
  print "\033[2J";
  print "\033[0;0H";
  chomp($who=`whoami`);
  chomp($date=`date +%D`);
  print "\n                           系統資訊課制作\n";
  print "\n\n不要想搗亂我知道你是:$who       今天:$date  天氣:daowaimiankan\n";
  print "\n";
  print "*" x 70,"\n"; 
  print "\n    <1>.添加Linux帳號      <2>.添加Linux帳號及TIPTOP系統帳號 \n";
  print "\n    <3>.返回主界面         <0>.直接退出\n\n";
  print "*" x 70,"\n";
  print "請作選擇:";
  AGAIN:{chomp($i=);
   if ($i==1)
      {&singadd1}
   elsif($i==2)
      {&singadd2}
   elsif($i==3){
       goto MENU}
   elsif($i==0){
       exit;}
   else
      {print "眼睛睜大點有$i嗎?(* *)\n";
        redo AGAIN;}
  }
 }
 
 sub singadd1{
   print "\n請輸入員工工號:";
   chomp($employeeid=);
   my $line=`awk -F : '{ print \$1 }' /etc/passwd\|grep -w $employeeid`;
   chomp($line);
   print $line,"\n";
   print $employeeid,"\n";
   if ($line eq $employeeid) {
       sleep 1;
       print "\n    :(      :(      \n";
       print "   此帳號已經存在!\n";
       sleep 3;
       &singadd
     }else{
   my $cmd="adduser -d /home/tiptop -s /bin/sh -g tiptop $employeeid";
   `$cmd`;
   my $mesg=`echo $employeeid|/usr/bin/passwd --stdin $employeeid`;
   print $mesg;
   sleep 5;
   &singadd
  }
  }
  
  sub singadd2{
   print "\n請輸入員工工號:";
   chomp(my $employeeid=);
   print "\n請輸入員工姓名:";
   chomp(my $name=);
   print "\n請輸入人員部門:";
   chomp(my $dept=);
   print "\n請輸入人員權限別:";
   chomp(my $privs=);
    my $line=`awk -F : '{ print \$1 }' /etc/passwd\|grep -w $employeeid`;
    if ( $line==$employeeid ) {
       sleep 1;
       print "\n    :(      :(      \n";
       print "   此帳號已經存在!\n";
       sleep 3;
       &singadd
     }else{
    my $mesglinux=`/usr/sbin/adduser -d /home/tiptop -s /bin/sh -g tiptop $employeeid`;
    print $mesglinux;
    sleep 1;
    my $mesg=`echo $employeeid|/usr/bin/passwd --stdin $employeeid`;
    print $mesg;
    sleep 5;
    my $insert="insert into zx_file(zx01,zx02,zx03,zx04,zx06,zx07,zx08,zxuser) values (\'$employeeid\',\'$name'\,\'$dept'\,\'$privs'\,0,'Y','ipeg',\'$who\')";
    open(INSERT ,">/shell/insert.sql")||die print "Can't open newfile $!\n";
    syswrite(INSERT,$insert);
    close(INSERT);
    sleep 5;
    my $insert_mesg=`dbaccess ipeg /shell/insert.sql ` ;
    print $insert_mesg,"\n";
  }
  }
 sub batchadd{
  print "還沒有實現\n";
  sleep 5;
  exit;
}
  
 sub deleteuser{
  print "\t請輸輸入刪除人員工號:";
  chomp($employeeid=);
  my $delmesg=`userdel $employeeid`;
  sleep 5;
  goto MENU;
}

 sub initpasswd{
  print "\t請輸輸入刪除人員工號:";
  chomp($employeeid=);
  my $initmesg=`echo $employeeid|/usr/bin/passwd --stdin $employeeid`;
  sleep 5;
  goto MENU;
}

剛學PERL,有不妥或者可以優化之處請各位路過大俠指點。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16381228/viewspace-714071/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16381228/viewspace-714071/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值