全新Linux+Python高階運維班第三次作業

renke發表於2021-09-09


1、找出/etc/rc.d/init.d/functions檔案中某單詞後面跟一組小括號的行,形如:hello();

[root@tom ~]# grep -E -o "[_[:alpha:]]+()" /etc/rc.d/init.d/functions 

fstab_decode_str()

checkpid()

__readlink()

__fgrep()

__kill_pids_term_kill_checkpids()

__kill_pids_term_kill()

__umount_loop()

__source_netdevs_fstab()

__source_netdevs_mtab()

__umount_loopback_loop()

__find_mounts()

__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()

action_silent()

strstr()

confirm()

get_numeric_dev()

is_ignored_file()

is_true()

is_false()

apply_sysctl()

key_is_random()

find_crypto_mount_point()

init_crypto()

2、使用echo命令輸出一個絕對路徑,使用grep取出其基名;

   擴充套件:取出其路徑名

[root@tom ~]# echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -E -o "[^/]+$"

ifcfg-eth0

#extended#

[root@tom ~]# echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -E -o "/.*/"

/etc/sysconfig/network-scripts/

3、找出ifconfig命令結果中的1-255之間數字;

[root@tom ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:DA:EF:CA  

          inet addr:172.18.11.121  Bcast:172.18.11.127  Mask:255.255.255.128

          inet6 addr: fe80::a00:27ff:feda:efca/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:21714 errors:0 dropped:0 overruns:0 frame:0

          TX packets:915 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:1479394 (1.4 MiB)  TX bytes:133705 (130.5 KiB)

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          

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

08

00

27

172

18

11

121

172

18

11

127

255

255

255

128

64

1

2

1

224

2

127

1

255

1

128

1

4、查詢當前系統上沒有屬主或屬組的檔案;

    進一步:查詢當前系統上沒有屬主或屬組,且最近3天內曾被訪問過的檔案或目錄;

[root@tom ~]# find / ( -nouser -o -nogroup ) -a -ls | wc -l

find: `/proc/21565/task/21565/fd/5': No such file or directory

find: `/proc/21565/task/21565/fd/5': No such file or directory

find: `/proc/21565/task/21565/fdinfo/5': No such file or directory

find: `/proc/21565/task/21565/fdinfo/5': No such file or directory

find: `/proc/21565/fd/5': No such file or directory

find: `/proc/21565/fd/5': No such file or directory

find: `/proc/21565/fdinfo/5': No such file or directory

find: `/proc/21565/fdinfo/5': No such file or directory

1842

#Next step#

[root@tom ~]# find / ( -nouser -o -nogroup ) -a -atime -3 -ls | wc -l

find: `/proc/21574/task/21574/fd/5': No such file or directory

find: `/proc/21574/task/21574/fdinfo/5': No such file or directory

find: `/proc/21574/fd/5': No such file or directory

find: `/proc/21574/fdinfo/5': No such file or directory

214

5、查詢/etc目錄下大於1M,且型別為普通檔案的所有檔案;

[root@tom ~]# find /etc -size +1M -type f -exec ls -lh {} ;

-rw-r--r--. 1 root root 8.1M Dec 16 16:43 /etc/selinux/targeted/modules/active/policy.kern

-rw-r--r--. 1 root root 8.1M Dec 16 16:43 /etc/selinux/targeted/policy/policy.24

-rw-r--r--. 1 root root 2.2M Dec 16 16:10 /etc/gconf/gconf.xml.defaults/%gconf-tree.xml

6、查詢/etc/init.d/目錄下,所有使用者都有執行許可權,且其它使用者有寫許可權的檔案;

[root@tom ~]# find /etc/init.d/ -perm 113

[root@tom ~]# ls -lh /etc/init.d/

total 440K

-rwxr-xr-x. 1 root root 1.3K May 12  2016 abrt-ccpp

-rwxr-xr-x. 1 root root 1.6K May 12  2016 abrtd

-rwxr-xr-x. 1 root root 1.7K May 12  2016 abrt-oops

-rwxr-xr-x. 1 root root 1.8K Feb 17  2016 acpid

-rwxr-xr-x. 1 root root 2.1K Feb 20  2015 atd

-rwxr-xr-x. 1 root root 3.5K May 11  2016 auditd

-rwxr-xr-x. 1 root root 4.0K Jul 12  2016 autofs

-r-xr-xr-x. 1 root root 1.4K Aug 24 02:37 blk-availability

-rwxr-xr-x. 1 root root  710 Nov 11  2010 bluetooth

-rwxr-xr-x. 1 root root 2.1K May  9  2016 certmonger

-rwxr-xr-x. 1 root root  12K Jul 24  2015 cpuspeed

-rwxr-xr-x. 1 root root 2.8K Aug 24 02:36 crond

-rwxr-xr-x. 1 root root 3.0K May 11  2016 cups

-rwxr-xr-x. 1 root root 1.7K May 11  2016 dnsmasq

-rwxr-xr-x. 1 root root 3.2K Jul  9  2013 firstboot

-rw-r--r--. 1 root root  25K Apr 12  2016 functions

-rwxr-xr-x. 1 root root 1.8K Oct 15  2014 haldaemon

-rwxr-xr-x. 1 root root 5.9K Apr 12  2016 halt

-rwxr-xr-x. 1 root root 2.0K Nov 19 07:49 htcacheclean

-rwxr-xr-x. 1 root root 3.5K Nov 19 07:49 httpd

-rwxr-xr-x. 1 root root  11K Jul 24  2015 ip6tables

-rwxr-xr-x. 1 root root 6.6K May 11  2016 ipsec

-rwxr-xr-x. 1 root root  11K Jul 24  2015 iptables

-rwxr-xr-x. 1 root root 1.9K Feb  2  2016 irqbalance

-rwxr-xr-x. 1 root root  21K Nov 18 23:19 kdump

-rwxr-xr-x. 1 root root  652 Apr 12  2016 killall

-r-xr-xr-x. 1 root root 2.1K Aug 24 02:37 lvm2-lvmetad

-r-xr-xr-x. 1 root root 3.0K Aug 24 02:37 lvm2-monitor

-rwxr-xr-x. 1 root root 2.6K Jun 21  2016 mdmonitor

-rwxr-xr-x. 1 root root 2.2K Apr 22  2015 messagebus

-rwxr-xr-x. 1 root root 6.9K May 11  2016 mysqld

-rwxr-xr-x. 1 root root 3.0K Apr 12  2016 netconsole

-rwxr-xr-x. 1 root root 5.2K Apr 12  2016 netfs

-rwxr-xr-x. 1 root root 6.3K Apr 12  2016 network

-rwxr-xr-x. 1 root root 2.2K May 11  2016 NetworkManager

-rwxr-xr-x. 1 root root 6.8K Oct  5 04:27 nfs

-rwxr-xr-x. 1 root root 3.5K Oct  5 04:27 nfslock

-rwxr-xr-x. 1 root root 1.9K May  3  2016 ntpd

-rwxr-xr-x. 1 root root 2.0K May  3  2016 ntpdate

-rwxr-xr-x. 1 root root 2.3K May 11  2016 oddjobd

-rwxr-xr-x. 1 root root 2.5K May 31  2010 openct

-rwxr-xr-x. 1 root root 2.2K Jul 24  2015 pcscd

-rwxr-xr-x. 1 root root 2.0K May 11  2016 portreserve

-rwxr-xr-x. 1 root root 3.9K Nov 10  2015 postfix

-rwxr-xr-x. 1 root root 9.5K Nov  5 22:08 postgresql-9.2

-rwxr-xr-x. 1 root root 1.7K May 11  2016 pppoe-server

-rwxr-xr-x. 1 root root 1.6K Jul 17  2012 psacct

-rwxr-xr-x. 1 root root 2.0K Jan  7  2015 quota_nld

-rwxr-xr-x. 1 root root 1.5K Nov 13  2015 rdisc

-rwxr-xr-x. 1 root root 1.8K Nov 18 23:30 restorecond

-rwxr-xr-x. 1 root root 1.8K Sep 22  2015 rngd

-rwxr-xr-x. 1 root root 2.1K May 11  2016 rpcbind

-rwxr-xr-x. 1 root root 2.5K Oct  5 04:27 rpcgssd

-rwxr-xr-x. 1 root root 2.3K Oct  5 04:27 rpcidmapd

-rwxr-xr-x. 1 root root 2.5K Oct  5 04:27 rpcsvcgssd

-rwxr-xr-x. 1 root root 2.0K Dec 10  2014 rsyslog

-rwxr-xr-x. 1 root root 1.7K Nov 18 23:30 sandbox

-rwxr-xr-x. 1 root root 2.1K Feb 27  2015 saslauthd

-rwxr-xr-x. 1 root root  647 Apr 12  2016 single

-rwxr-xr-x. 1 root root 3.0K Feb 22  2013 smartd

-rwxr-xr-x. 1 root root 2.2K Aug 24 02:47 snmpd

-rwxr-xr-x. 1 root root 1.7K Aug 24 02:47 snmptrapd

-rwxr-xr-x. 1 root root 2.5K May 11  2016 spice-vdagentd

-rwxr-xr-x. 1 root root 4.6K May 12  2016 sshd

-rwxr-xr-x. 1 root root 2.7K Jul 12  2016 sssd

-rwxr-xr-x. 1 root root 1.2K May 11  2016 sysstat

-rwxr-xr-x. 1 root root 2.3K Sep  6 22:51 udev-post

-rwxr-xr-x. 1 root root  16K Nov  6 16:42 vboxadd

-rwxr-xr-x. 1 root root 3.0K Nov  6 16:43 vboxadd-service

-rwxr-xr-x. 1 root root  21K Nov  6 16:43 vboxadd-x11

-rwxr-xr-x. 1 root root 3.4K May 11  2016 vsftpd

-rwxr-xr-x. 1 root root 1.7K Feb 22  2013 wdaemon

-rwxr-xr-x. 1 root root 1.6K Aug 24 02:58 winbind

-rwxr-xr-x. 1 root root 1.9K Nov 18 22:26 wpa_supplicant

-rwxr-xr-x. 1 root root 5.0K May 11  2016 ypbind

7、查詢/etc目錄下最近一週內其內容被修改過,且不屬於root或hadoop的檔案;

[root@tom ~]# find /etc -mtime -7 -a -not ( -user root -o -user hadoop )

[root@tom ~]#

8、複製/etc/rc.d/rc.sysinit檔案至/tmp目錄,將/tmp/rc.sysinit檔案中的以至少一個空白字元開頭的行的行首加#;

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

[root@tom ~]# ls -lh /tmp

total 24K

drwx------. 2 root root 4.0K Dec 11 19:18 pulse-0QUeAoK4lJM6

-rwxr-xr-x. 1 root root  20K Feb 12 17:07 rc.sysinit

[root@tom ~]# head -n 20 /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

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then

    HOSTNAME=localhost

fi

if [ ! -e /proc/mounts ]; then

 mount -n -t proc /proc /proc

 

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

#在末行模式下輸入:

:%s@^[[:space:]]+@#&@g

[root@tom ~]# head -n 20 /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

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then

#    HOSTNAME=localhost

fi

if [ ! -e /proc/mounts ]; then

# mount -n -t proc /proc /proc

[root@tom ~]# head -n 20 /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

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then

HOSTNAME=localhost

fi

if [ ! -e /proc/mounts ]; then

mount -n -t proc /proc /proc

9、刪除/tmp/rc.sysinit檔案中的以#開頭,且後面跟了至少一個空白字元的行行的#和空白字元

[root@tom ~]# head -n 20 /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

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then

#    HOSTNAME=localhost

fi

if [ ! -e /proc/mounts ]; then

# mount -n -t proc /proc /proc

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

#在末行模式下輸入:

:%s@^#[[:space:]]+@@g

[root@tom ~]# head -n 20 /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

if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then

HOSTNAME=localhost

fi

if [ ! -e /proc/mounts ]; then

mount -n -t proc /proc /proc

10、將/etc/yum.repos.d/CentOS-Media.repo檔案中所有的enabled=0或gpgcheck=0的最後的0修改為1;

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

# CentOS-Media.repo

#

#  This repo can be used with mounted DVD media, verify the mount point for

#  CentOS-6.  You can use this repo and yum to install items directly off the

#  DVD ISO that we release.

#

# To use this repo, put in your DVD and use it with the other repos too:

#  yum --enablerepo=c6-media [command]

#  

# or for ONLY the media repo, do this:

#

#  yum --disablerepo=* --enablerepo=c6-media [command]

 

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///media/CentOS/

        file:///media/cdrom/

        file:///media/cdrecorder/

gpgcheck=1

enabled=0

gpgkey=

 

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

#在末行模式下輸入:

:%s/(enabled|gpgcheck)=0/1=1/g

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

# CentOS-Media.repo

#

#  This repo can be used with mounted DVD media, verify the mount point for

#  CentOS-6.  You can use this repo and yum to install items directly off the

#  DVD ISO that we release.

#

# To use this repo, put in your DVD and use it with the other repos too:

#  yum --enablerepo=c6-media [command]

#  

# or for ONLY the media repo, do this:

#

#  yum --disablerepo=* --enablerepo=c6-media [command]

 

[c6-media]

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@tom ~]# crontab -e

no crontab for root - using an empty one

crontab: installing new crontab

[root@tom ~]# crontab -l

#Backup /var/log/messages to /backup/messages_logs/ at every week 2,4,6 --sam

* * * * 2,4,6 cp /var/log/messages backup/messages_logs/messages-$(date +%Y%m%D)

12、每天每兩小時取當前系統/proc/meminfo檔案中的所有以S開頭的資訊至/stats/memory.txt檔案中

[root@tom ~]# crontab -e

crontab: installing new crontab

[root@tom ~]# crontab -l

#Backup /var/log/messages to /backup/messages_logs/ at every week 2,4,6 --sam

* * * * 2,4,6 cp /var/log/messages backup/messages_logs/messages-$(date +%Y%m%D)

#每天每兩小時取當前系統/proc/meminfo檔案中的所有以S開頭的資訊至/stats/memory.txt檔案中

* */2 * * * cat /proc/meminfo | grep "^S" >> /stats/memory.txt

13、寫一個指令碼建立10使用者user10-user19;密碼同使用者名稱;

[root@tom bin]# vim uadd

#!/bin/bash

#add user10-user19.

for ((i=10;i<=19;i++));do

 id user$i &> /dev/null && exit0 || useradd user$i && echo "user$i" | passwd --stdin user$i

done

[root@tom bin]# ll

total 4

-rw-r--r--. 1 root root 155 Feb 12 18:02 uadd

[root@tom bin]# chmod 755 uadd

[root@tom bin]# ll 

total 4

-rwxr-xr-x. 1 root root 155 Feb 12 18:02 uadd

[root@tom bin]# uadd

Changing password for user user10.

passwd: all authentication tokens updated successfully.

Changing password for user user11.

passwd: all authentication tokens updated successfully.

Changing password for user user12.

passwd: all authentication tokens updated successfully.

Changing password for user user13.

passwd: all authentication tokens updated successfully.

Changing password for user user14.

passwd: all authentication tokens updated successfully.

Changing password for user user15.

passwd: all authentication tokens updated successfully.

Changing password for user user16.

passwd: all authentication tokens updated successfully.

Changing password for user user17.

passwd: all authentication tokens updated successfully.

Changing password for user user18.

passwd: all authentication tokens updated successfully.

Changing password for user user19.

passwd: all authentication tokens updated successfully.

[root@tom bin]# tail /etc/passwd 

user10:x:3009:3009::/home/user10:/bin/bash

user11:x:3010:3010::/home/user11:/bin/bash

user12:x:3011:3011::/home/user12:/bin/bash

user13:x:3012:3012::/home/user13:/bin/bash

user14:x:3013:3013::/home/user14:/bin/bash

user15:x:3014:3014::/home/user15:/bin/bash

user16:x:3015:3015::/home/user16:/bin/bash

user17:x:3016:3016::/home/user17:/bin/bash

user18:x:3017:3017::/home/user18:/bin/bash

user19:x:3018:3018::/home/user19:/bin/bash

©著作權歸作者所有:來自51CTO部落格作者魂之約的原創作品,謝絕轉載,否則將追究法律責任


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/430/viewspace-2820051/,如需轉載,請註明出處,否則將追究法律責任。

相關文章