第五周作业

1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息。

[root@YWQ shell]# cat createuser.sh
#!/bin/bash
#
#*************************************
#author:                YWQ
#QQ:                    @@@@@@@@
#email:                 @@@@@@@qq.com
#version:               1.0
#date:                  2020-12-27
#description:           script
#*************************************

## 判断传入参数是否为空
if [ "$#" -lt 1 ]
then
        echo "Usage: createuser.sh [userId]"
        exit 1
fi

## 判断用户是否存在 :

id $1 &> /etc/null

if [[ $? -eq 0 ]];then
        echo "user already exit"

else

## 创建用户并显示用户信息
useradd $1

echo "$1 create successfully!"

echo "$(id $1)"

fi

[root@YWQ shell]# ./createuser.sh ywq
user already exit
[root@YWQ shell]# ./createuser.sh abc
abc create successfully!
uid=2006(abc) gid=2006(abc) groups=2006(abc)
[root@YWQ shell]#

2、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

[root@YWQ ~]# cat .vimrc
 autocmd BufNewFile *.sh exec ":call SetTitle()"
 func SetTitle()
     if expand("%:e")=='sh'
             call setline(1,"#!/bin/bash")
             call setline(2,"#")
             call setline(3,"#*************************************")
             call setline(4,"#author:                YWQ")
             call setline(5,"#QQ:                    @@@@@@@@")
             call setline(6,"#email:                 @@@@@@@qq.com")
             call setline(7,"#version:               1.0")
             call setline(8,"#date:                  ".strftime("%Y-%m-%d"))
             call setline(9,"#description:           script")
             call setline(10,"#*************************************")

     endif

 endfunc
[root@YWQ ~]#

3、查找/etc目录下大于1M且类型为普通文件的所有文件

[root@YWQ ~]# find /etc/ -type f -size +1M -exec ls -lh {} \;
-rw-r--r--. 1 root root 8.2M Nov 28 16:40 /etc/selinux/targeted/policy/policy.31
-r--r--r--. 1 root root 8.8M Nov 28 16:42 /etc/udev/hwdb.bin
[root@YWQ ~]#

4、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。

[root@YWQ ~]# find /etc -name "*.conf" | xargs tar -zPcf `date +%F`.gz && cp `date +%F`.gz /usr/local/src
[root@YWQ ~]# ls /usr/local/src/
2020-12-27.gz  rpcsvc-proto-1.4
[root@YWQ ~]# tar -tPf 2020-12-27.gz
/etc/resolv.conf
/etc/dnf/dnf.conf
/etc/dnf/plugins/copr.conf
/etc/dnf/plugins/debuginfo-install.conf
....

5、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录

[root@YWQ ~]# find / -ctime -7 -nogroup  -nouser -ls

6、查找/etc目录下至少有一类用户没有执行权限的文件

find /etc -not -perm -111 -ls

简单总结 :
find
特点:
1.实时查找
2.文件遍历
3.精确匹配
4.速度较慢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其...
    紫火红云阅读 149评论 0 0
  • 1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.t...
    小邢_阅读 276评论 0 1
  • 1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分.t...
    卫清华阅读 283评论 0 0
  • Q1、每12小时备份并压缩/etc/目录至/backup目录中,保存文件名称格式为,"etc-年-月-日-时-分....
    wbyyy阅读 417评论 0 0
  • 1、查找/etc目录下大于1M且类型为普通文件的所有文件 find用法 常用用法:find path 查找条件 处...
    Gustav_man阅读 186评论 0 0