自己做网站怎么租服务器,汕头网站建设制作公司,wordpress 后台 字数统计,永川网站建设熊掌号功能需求
获取正确的待删除账户名杀死系统中正在运行的属于该账户的进程确认系统中属于该账户的所有文件删除该账户
1. 获取正确的待删除账户名 #让用户输入账户名
read -t 10 -p please input account name: accountif [ -z $account ]
thenecho account…功能需求
获取正确的待删除账户名杀死系统中正在运行的属于该账户的进程确认系统中属于该账户的所有文件删除该账户
1. 获取正确的待删除账户名 #让用户输入账户名
read -t 10 -p please input account name: accountif [ -z $account ]
thenecho account name is emptyecho exit scriptexit
fi#检查是否存在这个账户account_info$(cat /etc/passwd | grep $account)
if [ $? -eq 1 ]
thenecho account $account not existecho exit scriptexit
fi#账户存在
#确认是否要删除这个账户
echo Is $account the user account
echo $account_info
read -p you wish to delete from the system?[y/n]: isdel
case $isdel in
Y|y);;
*)
echo exit script
exit
;;
esac
2. 杀死系统中正在运行的属于该账户的进程
xargs 是一个强有力的命令它能够捕获一个命令的输出然后传递给另外一个命令. 之所以能用到这个命令关键是由于很多命令不支持|管道来传递参数而日常工作中有有这个必要所以就有了 xargs 命令。
命令格式: somecommand |xargs -item command 参数: -d delim 分隔符
$ echo loop.sh
fileout
sedout | xargs -d \n ls -l
-rw-rw-r-- 1 ubuntu ubuntu 32 Jun 12 20:09 fileout
-rwxrw-r-- 1 ubuntu ubuntu 0 Jun 13 18:04 loop.sh
-rw-rw-r-- 1 ubuntu ubuntu 22 Jun 21 12:53 sedout由于ls 不支持管道所以通过xargs将 echo 输出 fileout、loop.sh、sedout传给了 ls。下面开始处理属于用户的正在运行的进程。
1、先通过 ps -u 命令查找属于用户的进程
ps -u $account2、将ps 的结果传给gawk解析出pid
gawk $1 ~ /[0-9]/{print $1} 3、最后将pid列表通过xargs传给kill命令
xargs -d \n kill -9合在一起:
ps -u $account | gawk $1 ~ /[0-9]/{print $1} | xargs -d \n kill -93. 确认系统中属于该账户的所有文件
find / -user $account $report_file4. 删除该账户
userdel $account5. 创建脚本
#!/usr/bin/bash#让用户输入账户名
read -t 10 -p please input account name: accountif [ -z $account ]
thenecho account name is emptyecho exit scriptexit
fi#检查是否存在这个账户account_info$(cat /etc/passwd | grep $account)
if [ $? -eq 1 ]
thenecho account $account not existecho exit scriptexit
fi#确认是否要删除这个账户
echo Is $account the user account
echo $account_info
read -p you wish to delete from the system?[y/n]: isdel
case $isdel in
Y|y);;
*)
echo exit script
exit
;;
esac#查找正在运行的属于该账户的进程ps -u $account | gawk $1 ~ /[0-9]/{print $1} | xargs -d \n kill -9#查找账户文件
find / -user $account report_file#删除账户
userdel $account