linux shell 脚本,批量删除

作者&投稿:邹耍 (若有异议请与网页底部的电邮联系)
linux编写一个批量删除用户的脚本,最好有注释~

#1、彻底删除UID>=500的用户的主目录及其子文件;
#2、彻底删除UID>=500的用户;
#3、彻底删除Shell脚本自己!
#!/bin/bash
uid=`awk -F ':' '{print $3}' /etc/passwd` ##获取所有用户的uid
user=`awk -F ':' '{print $1}' /etc/passwd`##获取所有用户名
array=($user) ##把所有用户名放到数组里面去
j=0 ##数组的下标,初始化为0
for i in $uid;do
if [ $i -ge 500 ];then
userdel -r "${array[$j]}" ##循环删除uid>=500用户的主目录及其子文件和用户
fi ##-r 使用者目录下的档案一并移除。在其他位置上的档案 也将一一找出并删除。
let j=j+1
done
rm `pwd`/$0 ##删除Shell脚本自己

rm 可以删除文件亦可以批量删除文件夹下所有文件
1、rm -rf 文件或文件夹
2、其中 -r 参数指的是递归删除文件夹下所有文件
-f指的是强制删除,如果不加-f,则没删一个文件都会询问你是否确认删除。

一行拼凑复杂点的命令可以了。

find /home/wind -maxdepth 1 -type d | sed 1d | xargs -I'{}' du {}/www -sb | gawk '{ if ($1>20*1024*1024) {system("echo " $2 " more than " 20*1024*1024)}; }'

注:我喜欢用awk处理多行文本,可计算数字又有字符串处理。system()是gawk调用shell命令的函数,现在是显示信息而已,
如果你换成:system("rm -fr " $2 ";mkdir " $2) ,则是删除整个www目录,并重建一个www目录。

#!/bin/bash
#此小脚本为方便需要大批量删除具有相通特征的用户(如xuanfei1 xuanfei2 xuanfei3)
read -p "请输入你想要删除的用户并指定范围(如:xuanfei 1 100):" a b c
let d=$c-$b+1
for((i=1;i<=$d;i++))
do
userdel $a$b && echo "已经成功删除$a$b用户"
#想彻底删除用户所有的资料可添加下条明令
#rm -rf /home/$a$b
let b=b+1
done


实验内容编写shell程序实现:创建100个名为user1~user100的用户;创建100个名#!/bin/bash #此小脚本为方便需要大批量删除具有相通特征的用户(如xuanfei

find /home/wind -maxdepth 1 -type d | sed 1d | xargs -I'{}' du {}/www -sb | gawk '{ if ($1>20*1024*1024) {system("echo " $2 " more than " 20*1024*1024)}; }'

man find

find /home/wind Find_the_Stuff |xargs /bin/rm -f


海原县18092622870: linux shell脚本 批处理 -
钞褚可立: 1. 新建一个文件,名字为test(自己定义的名字) nano test.sh2. 在里面编写脚本 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中使用/bin/sh来执行程...

海原县18092622870: linux shell脚本 批处理 -
钞褚可立: 就是你的这些命令,全部放到一个文件里,随便取名,比方说叫做batch.sh,然后在文件头增加这样一行代码:#!/bin/sh最后,为这个文件加上可执行权限就行了.

海原县18092622870: 请教Linux shell下如何同时执行多个脚本 -
钞褚可立: Linux下可以有两种方式执行Shell脚本:1、用shell程序执行脚本:根据shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bash里面指明了shell类型的,比如#!/bin/bash指明是bash,#!/bin/sh则是sh);然后输入命令(其中bash为shell的名称,myshell.sh则为要执行的代码):bash myshell.sh2、直接执行脚本:不过首先的加上可执行权限(也许要root权限,4情况而定),执行:

海原县18092622870: linux一次运行多个shell脚本 -
钞褚可立: 1234 forfolder inA/* do [ -d $folder ] && $folder/down.sh & done

海原县18092622870: 如何在linux下批量执行命令? -
钞褚可立: 把你的命令写入一个shell脚本就行了啊.新建一个文本文件,然后给他赋予可执行权限就行了.文本内容为#/bin/bash ...你的命令

海原县18092622870: linux redhat shell 脚本 批量添加用户
钞褚可立: #!/bin/shi=0while truedo let i=i+1 echo "u"$i":123456" &gt;&gt;/root/user.txt echo "createing user u$i ................." useradd u$i if [ $i -eq 100 ] then /usr/sbin/chpasswd /root/user.txt /bin/rm -f /root/user.txt exit fidone#if you want to delete all of the ...

海原县18092622870: linux中 用shell命令批量新建用户的方法建立用户 k1 k2 k3 k4 k5 登录口令统一设置为12345 求详细操作步骤 -
钞褚可立: 可以建立一个shell脚本处理,脚本内容如下,这只是个简单的脚本,没有对用户设置组和家目录,也没有判断用户是否存在,实际应用中需要注意处理:#!/bin/bash#设置初始密码 kpasswd="12345" for kuser in k1 k2 k3 k4 k5 do useradd $kuser echo "$kuser:$kpasswd" | chpasswd echo "用户$kuser建立成功,初始密码是$kpasswd" done

海原县18092622870: 帮我修改一个linux的shell脚本:根据文件名批量搜索并复制文件 -
钞褚可立: while read line; do if [ -f "/sample/$line" ]; then echo "file exists: $line"; cp "/sample/$line" /new/; fi; done

海原县18092622870: shell脚本如何多线程并发 -
钞褚可立: 分享一个在Linux下模拟多线程的并发脚本,使用这个脚本可以同时批量在定义数量的服务器上执行相关命令,比起普通for/while循环只能顺序一条一条执行的效率高非常多,在管理大批服务器时非常的实用. 以下脚本功能是通过scp(也可选...

海原县18092622870: LINUX中如何用shell脚本批量设置用户密码?
钞褚可立: while read line douser=`echo $line|cut -d : -f 1`useradd $userpasswd = `echo $line | cut -d : -f 2`echo -e "$passwd\n$passwd" | passwd "$user" done&lt;userlist.txt 试试成不成 需要用root执行

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网