首页 > 编程知识 正文

linux批量删除文件后缀名,删除用户账号命令

时间:2023-05-04 17:23:19 阅读:51957 作者:3003

拥有大量服务器的普通用户需要删除帐户,手动删除一个个帐户也不太现实。 此时,如果使用shell脚本进行处理就很方便了。 运行脚本并输入要删除的用户名即可

shell脚本的内容如下

#! /axdbg/bash

函数get _ answer {

#

unset ANSWER

ASK_COUNT=0

#

while [ -z '$ANSWER' ] #如果没有人回答,继续问

德奥

ASK_COUNT=$[ $ASK_COUNT 1 ]

#

case $ASK_COUNT in #如果用户在分配的时间内没有回答

2 )

欧洲央行

echo 'Please answer the question.'

欧洲央行

3 )3) ) )。

欧洲央行

echo ' onelasttry . pleaseanswerthequestion.'

欧洲央行

4 )4) ) )。

欧洲央行

echo ' sinceyourefusetoanswerthequestion . '

echo 'exiting program.'

欧洲央行

#

退出

欧洲联盟

#

欧洲央行

#

if[-n'$line2']

then #打印两行

echo $LINE1

echo -e $LINE2' c '

else #打印一行

echo -e $LINE1' c '

fi

#

#超时前等待60秒回答

read -t 60 ANSWER

道恩

#稍微打扫一下

unset LINE1

unset LINE2

#

} #get_answer函数退出

#

# # # #

function process_answer {

#

case $ANSWER in

是)

#如果用户回答是,则什么也不做

* )

#如果用户不回答是,则退出脚本

欧洲央行

echo $EXIT_LINE1

echo $EXIT_LINE2

欧洲央行

退出

欧洲联盟

#

#稍微打扫一下

#

unset EXIT_LINE1

unset EXIT_LINE2

#

} # process_answer函数退出

#

# # # #

#函数定义结束

#

# # # #

#获取要检查的用户帐户的名称

#

echo ' step #1- determineuseraccountnametodelete '

欧洲央行

line1=' pleaseentertheusernameoftheuser '

line2=' accountyouwishtodeletefromsystem : '

get_answer

USER_ACCOUNT=$ANSWER

#

#检查脚本用户和重复项这是正确的用户帐户

#

line1=' is $ user _ accounttheuseraccount '

line2=' youwishtodeletefromthesystem? [y/n] '

get_answer

#

#响应process_answer函数

#如果用户不回答是,则退出脚本

#

EXIT_LINE1='Because the account,$USER_ACCOUNT,is not '

exit _ line2=' theoneyouwishtodelete,we are leaving the script . '

process_answer

#

################################################################

# 检查用户帐户是否确实是系统上的帐户

#

USER_ACCOUNT_RECORD=$(cat /etc/passwd | grep -w $USER_ACCOUNT)

#

if [ $? -eq 1 ] # 如果找不到帐户,请退出脚本

then

echo

echo "Account, $USER_ACCOUNT, not found. "

echo "Leaving the script..."

echo

exit

fi

#

echo

echo "I found this record:"

echo $USER_ACCOUNT_RECORD

#

LINE1="Is this the correct User Account? [y/n]"

get_answer

#

#

# 响应 process_answer 函数:

# 如果用户没有回答yes,则退出脚本

#

EXIT_LINE1="Because the account, $USER_ACCOUNT, is not "

EXIT_LINE2="the one you wish to delete, we are leaving the script..."

process_answer

#

##################################################################

# 搜索属于该用户帐户的所有正在运行的进程

#

echo

echo "Step #2 - Find process on system belonging to user account"

echo

#

ps -u $USER_ACCOUNT >/dev/null # 用户进程正在运行吗?

#

case $? in

1) # 没有为此用户帐户运行的进程

#

echo "当前没有此帐户的进程正在运行。"

echo

;;

0) # 为此用户帐户运行的进程。

# 询问脚本用户是否希望我们终止进程。

#

echo "$USER_ACCOUNT has the following processes running: "

echo

ps -u $USER_ACCOUNT

#

LINE1="想终止进程吗? [y/n]"

get_answer

#

case $ANSWER in

y|Y|YES|yes|Yes|yEs|yeS|YEs|yES ) # 如果用户回答yes,

# 终止用户帐户进程。

#

echo

echo "进程终止..."

#

# 在变量中列出运行代码的用户进程, COMMAND_1

COMMAND_1="ps -u $USER_ACCOUNT --no-heading"

#

# 在变量中创建终止进程的命令, COMMAND_3

COMMAND_3="xargs -d \n /usr/axdbg/sudo /axdbg/kill -9"

#

#通过管道命令一起终止进程

$COMMAND_1 | gawk '{print $1}' | $COMMAND_3

#

echo

echo "Process(es) killed."

;;

*) # 如果用户回答yes以外的任何问题,不要杀死。

echo

echo "Will not kill the process(es)"

echo

;;

esac

;;

esac

#################################################################

# 创建用户帐户拥有的所有文件的报告

#

echo

echo "Step #3 - 查找属于用户帐户的系统上的文件"

echo

echo "创建所拥有的所有文件的报告 $USER_ACCOUNT."

echo

echo "建议您备份或存档这些文件,"

echo "然后做两件事中的一件:"

echo " 1) 删除文件"

echo " 2) 将文件的所有权更改为当前用户帐户."

echo

echo "请稍等。这可能需要一段时间..."

#

REPORT_DATE=$(date +%y%m%d)

REPORT_FILE=$USER_ACCOUNT"_Files_"$REPORT_DATE".rpt"

#

find / -user $USER_ACCOUNT > $REPORT_FILE 2>/dev/null

#

echo

echo "报告已完成."

echo "报告名称: $REPORT_FILE"

echo "获取路径: $(pwd)"

echo

####################################

# Remove User Account

echo

echo "Step #4 - 删除用户帐户"

echo

#

LINE1="Remove $USER_ACCOUNT's account from system? [y/n]"

get_answer

#

# Call process_answer function:

# if user answers anything but "yes", exit script

#

EXIT_LINE1="不想删除用户帐户,"

EXIT_LINE2="$USER_ACCOUNT 此时,退出脚本..."

process_answer

#

userdel $USER_ACCOUNT #删除用户帐户

echo

echo "User account, $USER_ACCOUNT, has been removed"

echo

#

exit

来源:智一面运维小编

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。