1、编写脚本 createuser.sh,实现如下功能:使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息
#!/bin/bash
#使用一个用户名做为参数,如果 指定参数的用户存在,就显示其存在,
#否则添加之;显示添加的用户的id号等信息
E_WRONG_NUMBER_ARGS=10
E_WRONG_USERNAME_FORMAT=20
Number_of_expected_args=1
pattern='^[[:alpha:]][[:alnum:]]*'
if [ $# -ne $Number_of_expected_args ]; then
echo "参数错误,正确格式: `basename $0` user_name(String)"
exit $E_WRONG_NUMBER_ARGS
elif [[ ! $1 =~ $pattern ]]; then
echo "请输入正确的用户名格式."
exit $E_WRONG_USERNAME_FORMAT
fi
getent passwd $1 &>/dev/null
if [ $? -eq 0 ]; then
echo "$1用户已经存在"
exit
else
adduser $1
echo "$1用户添加成功"
id $1
echo "done"
fi
2、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等
#!/bin/bash
DATE=`date +%F`
AUTHOR='kenny'
EMAIL='771401822@qq.com'
SCRIPT_NAME=`basename $0`
VERSION='1.0'
DESC='my bash program'
echo "###################################################################"
echo "#Script Name : $SCRIPT_NAME "
echo "#Version : $VERSION"
echo "#Date : $DATE "
echo "#Email : $EMAIL "
echo "#AUTHOR : $AUTHOR "
echo "Description : $DESC "
echo "###################################################################"
3、查找/etc目录下大于1M且类型为普通文件的所有文件
[root@centos8 ~]$find /etc -type f -size +1M
/etc/selinux/targeted/policy/policy.31
/etc/udev/hwdb.bin
4、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。
[root@centos8 data]$find /etc -name *.conf -type f -print0 | xargs -0 tar -cvf `date +%F`.tar
[root@centos8 data]$cp 2020-12-24.tar /usr/local/src
[root@centos8 data]$ls /usr/local/src
2020-12-24.tar
//一条命令
file_name=$(date +%F).tar;find /etc -name *.conf -type f -print0 | xargs -0 tar -cvf $file_name;cp $file_name /usr/local/src/
5、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录
[root@centos8 dir1]$find / \( -nouser -o -nogroup \) -atime -7
find: ‘/proc/3739/task/3739/fd/9’: No such file or directory
find: ‘/proc/3739/task/3739/fdinfo/9’: No such file or directory
find: ‘/proc/3739/fd/8’: No such file or directory
find: ‘/proc/3739/fdinfo/8’: No such file or directory
/home/mandriva
/home/mandriva/.bash_logout
6、查找/etc目录下至少有一类用户没有执行权限的文件
#相当于全部有执行权限的文件除外
[root@centos8 dir1]$find /etc -not -perm -111 -ls