码迷,mamicode.com
首页 > 其他好文 > 详细

马哥第三次作业

时间:2017-01-19 23:14:07      阅读:438      评论:0      收藏:0      [点我收藏+]

标签:马哥   linux   

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


答:

[root@localhost ~]# egrep -o "[[:alpha:]]+\(\)" /etc/rc.d/init.d/functions 

checkpid()

run()

pidof()

daemon()

killproc()

pidfileofproc()

pidofproc()

status()

success()

failure()

passed()

warning()

stage()

success()

failure()

passed()

warning()

action()

strstr()

file()

true()

false()

sysctl()


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


答:


[root@localhost ~]# echo /etc/rc.d/init.d/ | egrep -o "[^/]+/?$" | cut -d"/" -f1 

init.d


扩展:取出其路径名


[root@localhost ~]# echo /etc/rc.d/init.d/functions | egrep -o "/.*/" 

/etc/rc.d/init.d/


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


答:


[root@localhost ~]# ifconfig | egrep -o "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"

192

168

1

10

255

255

255

192

168

1

255

64

29

13

206

145

6

73

127

1

255

1

128


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


答:


[root@localhost ~]# find / -nouser -o -nogroup 

find: ‘/proc/2554/task/2554/fd/6’: 没有那个文件或目录

find: ‘/proc/2554/task/2554/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/2554/fd/6’: 没有那个文件或目录

find: ‘/proc/2554/fdinfo/6’: 没有那个文件或目录

/var/spool/mail/mandriva

/home/mandriva

/home/mandriva/.bash_logout

/home/mandriva/.bash_profile

/home/mandriva/.bashrc


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


[root@localhost ~]# find / -nouser -o -nogroup -a -atime -3

find: ‘/proc/2596/task/2596/fd/6’: 没有那个文件或目录

find: ‘/proc/2596/task/2596/fdinfo/6’: 没有那个文件或目录

find: ‘/proc/2596/fd/6’: 没有那个文件或目录

find: ‘/proc/2596/fdinfo/6’: 没有那个文件或目录

/tmp/test2017-01-04

/var/spool/mail/mandriva

/var/spool/mail/chen

/home/mandriva

/home/mandriva/.bash_logout

/home/mandriva/.bash_profile

/home/mandriva/.bashrc

/home/chen

/home/chen/.bash_logout

/home/chen/.bash_profile

/home/chen/.bashrc

/home/chen/.bash_history


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


答:


[root@localhost ~]# find /etc/ -size +1M -type f -ls

33975533 6824 -r--r--r--   1 root     root      6984832 6月 20  2016 /etc/udev/hwdb.bin

67851855 3772 -rw-r--r--   1 root     root      3858924 11月 21  2015 /etc/selinux/targeted/policy/policy.29


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


答:


[root@localhost ~]# find /etc/init.d/ -perm -555 -ls

33689619    0 drwxr-xr-x   2 root     root           66 6月 20  2016 /etc/init.d/

33975975    4 -rwxr-xr-x   1 root     root         2989 9月 16  2015 /etc/init.d/netconsole

33975976    8 -rwxr-xr-x   1 root     root         6630 9月 16  2015 /etc/init.d/network


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


答:


[root@localhost ~]# useradd lx

[root@localhost ~]# touch /etc/test

[root@localhost ~]# chown lx.lx /etc/test

[root@localhost ~]# find /etc -mtime -7 -not \( -user root -o -user hadoop \) -ls

34534602    0 -rw-r--r--   1 lx       lx              0 1月  4 21:41 /etc/test


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


答:


(以下实验在CentOS 6中完成,CentOS 7 里没有此文件。)


方法一:使用VIM替换


[root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp

[root@localhost tmp]# vim rc.sysinit 

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

方法二:使用sed替换


[root@localhost tmp]# sed ‘s/^[[:space:]]/#&/‘ /tmp/rc.sysinit 

#!/bin/bash

#

# /etc/rc.d/rc.sysinit - run once at boot time

#

# Taken in part from Miquel van Smoorenburg‘s bcheckrc.

#

HOSTNAME=$(/bin/hostname)


set -m

if [ -f /etc/sysconfig/network ]; then

#    . /etc/sysconfig/network

fi


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


答:


方法一:使用VIM替换

[root@localhost ~]# vim /tmp/rc.sysinit

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


方法二:使用sed替换


[root@localhost ~]# sed ‘s/^#[[:space:]]\+//‘ /tmp/rc.sysinit 

#!/bin/bash

#

/etc/rc.d/rc.sysinit - run once at boot time

#

Taken in part from Miquel van Smoorenburg‘s bcheckrc.

#

HOSTNAME=$(/bin/hostname)


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


答:


方法一:使用VIM替换

[root@localhost ~]# cp /etc/yum.repos.d/CentOS-Media.repo /tmp

[root@localhost ~]# vim /tmp/CentOS-Media.repo 

%s/enabled=0/enabled=1/g


方法二:使用sed替换


[root@localhost ~]# sed ‘/^enabled=/{s/=0$/=1/}; /^gpgcheck=/{s/=0$/=1/}‘ /tmp/CentOS-Media.repo

name=CentOS-$releasever - Media

baseurl=file:///media/CentOS/

        file:///media/cdrom/

        file:///media/cdrecorder/

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


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


答:


[root@localhost ~]# mkdir -p /backup/messages_logs

[root@localhost ~]# crontab  -e

# 每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中


0 0 * * 2,4,6 /bin/cp -a /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`

~                                                                                              

~                                                                                              

~                                                                                              

~                                                                                              

~                                                                                              

"/tmp/crontab.CrVF1F" 3L, 171C



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


答:


[root@localhost ~]# mkdir /stats

[root@localhost ~]# crontab -e

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

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


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


答:


vim useradd.sh


#!/bin/bash

#

if [ ! $UID -eq 0 ]; then

       echo "此脚本只允许root管理员执行"

       exit 1

fi

for username in {10..19};do

       if id user$username &> /dev/null; then

               echo "此用户 user$username 已存在"

       else

               useradd user$username &> /dev/null

       if [ $? -eq 0 ]; then

               echo "user$username" | passwd --stdin user$username &>     /dev/null

               echo "新建用户 user$username 成功"

       fi

fi

done

~                                                                                                                                    


[root@localhost ~]# bash -n useradd.sh 


[root@localhost ~]# bash useradd.sh 

新建用户 user10 成功

新建用户 user11 成功

新建用户 user12 成功

新建用户 user13 成功

新建用户 user14 成功

新建用户 user15 成功

新建用户 user16 成功

新建用户 user17 成功

新建用户 user18 成功

新建用户 user19 成功


马哥第三次作业

标签:马哥   linux   

原文地址:http://2834473.blog.51cto.com/2824473/1893254

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!