首页 > 代码库 > Linux+Python高端运维班第三次作业

Linux+Python高端运维班第三次作业

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

[root@localhost ~]# grep -E  "[[:alpha:]]+\(\)+" /etc/rc.d/init.d/functions 
checkpid() {
__pids_var_run() {
__pids_pidof() {
daemon() {
killproc() {
pidfileofproc() {
pidofproc() {
status() {
echo_success() {
echo_failure() {
echo_passed() {
echo_warning() {
update_boot_stage() {
success() {
failure() {
passed() {
warning() {
action() {
strstr() {
is_ignored_file() {
is_true() {
is_false() {
apply_sysctl() {

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

[root@localhost ~]# echo "/bin/bash/" | grep -E -o "[^/]+/?$" | cut -d/ -f1
bash

   扩展:取出其路径名

[root@localhost ~]# echo "/bin/bash/d/" | grep -E -o "^/.*[^/]" | grep -E -o "^/.*/"
/bin/bash/

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

[root@localhost ~]# ifconfig | grep -E -o  "[[:digit:]]{1,}" | grep -E -w  "(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])"
192
168
223
128
255
255
255
192
168
223
255
6
80
20
29
3
6
64
20
29
3
6
7
19
8
73
127
1
255
6
1
128
10
26
2
26
2
192
168
122
1
255
255
255
192
168
122
255
52
54
70
9
5
[root@localhost ~]# ifconfig |  grep -E  -w  "(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])"
        inet 192.168.223.128  netmask 255.255.255.0  broadcast 192.168.223.255
        inet6 fe80::20c:29ff:fe3d:6dea  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3d:6d:ea  txqueuelen 1000  (Ethernet)
        RX packets 501011  bytes 692867068 (660.7 MiB)
        TX packets 157560  bytes 20813669 (19.8 MiB)
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        RX packets 314  bytes 26870 (26.2 KiB)
        TX packets 314  bytes 26870 (26.2 KiB)
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:70:c9:d5  txqueuelen 0  (Ethernet)

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

[root@localhost ~]# find / -nouser -nogroup
find: ‘/proc/38302/task/38302/fd/6’: No such file or directory
find: ‘/proc/38302/task/38302/fdinfo/6’: No such file or directory
find: ‘/proc/38302/fd/6’: No such file or directory
find: ‘/proc/38302/fdinfo/6’: No such file or directory

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

[root@localhost ~]# find / -nouser -nogroup -atime -3
find: ‘/proc/38312/task/38312/fd/6’: No such file or directory
find: ‘/proc/38312/task/38312/fdinfo/6’: No such file or directory
find: ‘/proc/38312/fd/6’: No such file or directory
find: ‘/proc/38312/fdinfo/6’: No such file or directory

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

[root@localhost ~]# find /etc -size +1M -type f -ls
69639801 3772 -rw-r--r--   1 root     root      3858924 Nov 20  2015 /etc/selinux/targeted/policy/policy.29
135034268 6852 -r--r--r--   1 root     root      7014922 Dec 23 00:49 /etc/udev/hwdb.bin
68629841 1336 -rw-r--r--   1 root     root      1367395 Mar  5  2015 /etc/brltty/zh-tw.ctb

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

[root@localhost ~]# find /etc/init.d/ -perm -113 -type f

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

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

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

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

在末行模式中输入:

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

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

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

在末行模式中输入:

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

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

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

 在末行模式中输入:

%s#\(enabled=\)[[:digit:]]#\11#g
%s#\(gpgcheck=\)[[:digit:]]#\11#g

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

[root@study ~]# crontab -e
0 0 * * 2,4,6 /bin/cp -a /var/log/messages /backup/messages_logs/messages-$(date +\%Y\%m\%d)

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

[root@localhost ~]# crontab -e
00 */2 * * * cat /proc/meminfo |grep "^S" >> /stats/memory.txt

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

#!/bin/bash#

    for i in {10..19};do
            if id user$i ;then
                    echo "user$i exists."
            else
                    useradd user$i
                    echo "user$i" | passwd --stdin user$i
            fi
    done

本文出自 “学海无涯” 博客,谢绝转载!

Linux+Python高端运维班第三次作业