首页 > 代码库 > 作业03

作业03

1、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();

答:

grep --colour=auto "\<[[:alpha:]]\+\>()"/etc/rc.d/init.d/functions

 

grep --colour=auto "[_[:alpha:]]\+()"/etc/rc.d/init.d/functions

 

2、使用echo命令输出一个绝对路径,使用grep取出其基名;

扩展:取出其路径名

答:

    echo"/etc/test.txt" | grep -E -o "[^/]+$"

echo"/mnt/sdc/" | grep -E -o "[^/]+/?$" | cut -d‘/‘ -f1

 

    echo"/mnt/sdc" | grep -E -o --colour=auto "^/.*/"

 

3、找出ifconfig命令结果中的1-255之间数字;

答:

ifconfig | grep -o --colour=auto -E"[0-9]{1,3}"

 

ifconfig | grep --colour=auto -o -E"\<[0-9]{1,3}\>"

4、查找当前系统上没有属主或属组的文件;

     进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;

答:

    find/ \( -type f -a -nouser -a -nogroup \) -ls

 

   find / \( -type f -a -nouser -a -nogroup -a-mtime -3 \) -ls

 

 

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

答:

find /etc \( -type f -a -size +1M \) -ls

 

6、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的文件;

答:

find /etc/init.d/ \( -type f -a -perm -113 \) -ls

 

7、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;

答:

find /etc/ \( -type f -a -mtime -7 -not \( -user root -o-user hadoop \) \) -ls

 

8、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

答:

cp /etc/rc.d/rc.sysinit /tmp

vim /tmp/rc.sysinit

%s/^[[:space:]]\+/#&/

 

9、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符

答:

vim /tmp/rc.sysinit

%s/^#[[:space:]]\+//

 

10、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

答:

vim /etc/yum.repos.d/CentOS-Media.repo

      %s/\(enabled=\)0/\11/

      %s/\(gpgcheck=\)0/\11/

 

11、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20161202

答:

mkdir -p /backup/messages_logs/

crontab -e

  0 0 * * 2,4,6 /usr/bin/cp /var/log/messages/backup/messages_logs/messages-`date +\%Y\%m\%d` &> /dev/null

 

 

12、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

答:

  mkdir /stats

  crontab -e

    0 */2 * * * /usr/bin/grep "^S.*"/proc/meminfo >> /stats/memory.txt

 

13、写一个脚本创建10用户user10-user19;密码同用户名;

答:

  vim test.sh

#!/bin/bash

if [ ! $UID -eq 0 ]; then

    echo"root only"

    exit1

fi

for i in {10..19};do

    if iduser$i &> /dev/null; then

       echo "user$i exist"

    else

       useradd user$i

        [$? -eq 0 ] && echo "user$i" | passwd --stdin user$i &>/dev/null

       echo "add user$i success"

    fi

done

 


作业03