唐伯虎 发表于 2021-6-23 21:53:15

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

1、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello();# grep -E -o "]+\(\)" /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取出其基名;
    扩展:取出其路径名# echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -E -o "[^/]+$"
ifcfg-eth0extended
# echo /etc/sysconfig/network-scripts/ifcfg-eth0 | grep -E -o "/./"
/etc/sysconfig/network-scripts/
3、找出ifconfig命令结果中的1-255之间数字;# ifconfig
eth0      Link encap:EthernetHWaddr 08:00:27:DA:EF:CA

          inet addr:172.18.11.121Bcast:172.18.11.127Mask:255.255.255.128
          inet6 addr: fe80::a00:27ff:feda:efca/64 Scope:Link
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric: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.1Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNINGMTU:65536Metric: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)
            # ifconfig | egrep -o "\<(|{2}|1{2}|2{2})\>"
  08
  00
  27
  172
  18
  11
  121
  172
  18
  11
  127
  255
  255
  255
  128
  64
121  224
2  127
1  255
1  128

  1
4、查找当前系统上没有属主或属组的文件;
   进一步:查找当前系统上没有属主或属组,且最近3天内曾被访问过的文件或目录;# 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
# 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,且类型为普通文件的所有文件;# 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/目录下,所有用户都有执行权限,且其它用户有写权限的文件;# find /etc/init.d/ -perm 113
# ls -lh /etc/init.d/
total 440K
-rwxr-xr-x. 1 root root 1.3K May 122016 abrt-ccpp
-rwxr-xr-x. 1 root root 1.6K May 122016 abrtd
-rwxr-xr-x. 1 root root 1.7K May 122016 abrt-oops
-rwxr-xr-x. 1 root root 1.8K Feb 172016 acpid
-rwxr-xr-x. 1 root root 2.1K Feb 202015 atd
-rwxr-xr-x. 1 root root 3.5K May 112016 auditd
-rwxr-xr-x. 1 root root 4.0K Jul 122016 autofs
-r-xr-xr-x. 1 root root 1.4K Aug 24 02:37 blk-availability
-rwxr-xr-x. 1 root root710 Nov 112010 bluetooth
-rwxr-xr-x. 1 root root 2.1K May92016 certmonger
-rwxr-xr-x. 1 root root12K Jul 242015 cpuspeed
-rwxr-xr-x. 1 root root 2.8K Aug 24 02:36 crond
-rwxr-xr-x. 1 root root 3.0K May 112016 cups
-rwxr-xr-x. 1 root root 1.7K May 112016 dnsmasq
-rwxr-xr-x. 1 root root 3.2K Jul92013 firstboot
-rw-r--r--. 1 root root25K Apr 122016 functions
-rwxr-xr-x. 1 root root 1.8K Oct 152014 haldaemon
-rwxr-xr-x. 1 root root 5.9K Apr 122016 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 root11K Jul 242015 ip6tables
-rwxr-xr-x. 1 root root 6.6K May 112016 ipsec
-rwxr-xr-x. 1 root root11K Jul 242015 iptables
-rwxr-xr-x. 1 root root 1.9K Feb22016 irqbalance
-rwxr-xr-x. 1 root root21K Nov 18 23:19 kdump
-rwxr-xr-x. 1 root root652 Apr 122016 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 212016 mdmonitor
-rwxr-xr-x. 1 root root 2.2K Apr 222015 messagebus
-rwxr-xr-x. 1 root root 6.9K May 112016 mysqld
-rwxr-xr-x. 1 root root 3.0K Apr 122016 netconsole
-rwxr-xr-x. 1 root root 5.2K Apr 122016 netfs
-rwxr-xr-x. 1 root root 6.3K Apr 122016 network
-rwxr-xr-x. 1 root root 2.2K May 112016 NetworkManager
-rwxr-xr-x. 1 root root 6.8K Oct5 04:27 nfs
-rwxr-xr-x. 1 root root 3.5K Oct5 04:27 nfslock
-rwxr-xr-x. 1 root root 1.9K May32016 ntpd
-rwxr-xr-x. 1 root root 2.0K May32016 ntpdate
-rwxr-xr-x. 1 root root 2.3K May 112016 oddjobd
-rwxr-xr-x. 1 root root 2.5K May 312010 openct
-rwxr-xr-x. 1 root root 2.2K Jul 242015 pcscd
-rwxr-xr-x. 1 root root 2.0K May 112016 portreserve
-rwxr-xr-x. 1 root root 3.9K Nov 102015 postfix
-rwxr-xr-x. 1 root root 9.5K Nov5 22:08 postgresql-9.2
-rwxr-xr-x. 1 root root 1.7K May 112016 pppoe-server
-rwxr-xr-x. 1 root root 1.6K Jul 172012 psacct
-rwxr-xr-x. 1 root root 2.0K Jan72015 quota_nld
-rwxr-xr-x. 1 root root 1.5K Nov 132015 rdisc
-rwxr-xr-x. 1 root root 1.8K Nov 18 23:30 restorecond
-rwxr-xr-x. 1 root root 1.8K Sep 222015 rngd
-rwxr-xr-x. 1 root root 2.1K May 112016 rpcbind
-rwxr-xr-x. 1 root root 2.5K Oct5 04:27 rpcgssd
-rwxr-xr-x. 1 root root 2.3K Oct5 04:27 rpcidmapd
-rwxr-xr-x. 1 root root 2.5K Oct5 04:27 rpcsvcgssd
-rwxr-xr-x. 1 root root 2.0K Dec 102014 rsyslog
-rwxr-xr-x. 1 root root 1.7K Nov 18 23:30 sandbox
-rwxr-xr-x. 1 root root 2.1K Feb 272015 saslauthd
-rwxr-xr-x. 1 root root647 Apr 122016 single
-rwxr-xr-x. 1 root root 3.0K Feb 222013 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 112016 spice-vdagentd
-rwxr-xr-x. 1 root root 4.6K May 122016 sshd
-rwxr-xr-x. 1 root root 2.7K Jul 122016 sssd
-rwxr-xr-x. 1 root root 1.2K May 112016 sysstat
-rwxr-xr-x. 1 root root 2.3K Sep6 22:51 udev-post
-rwxr-xr-x. 1 root root16K Nov6 16:42 vboxadd
-rwxr-xr-x. 1 root root 3.0K Nov6 16:43 vboxadd-service
-rwxr-xr-x. 1 root root21K Nov6 16:43 vboxadd-x11
-rwxr-xr-x. 1 root root 3.4K May 112016 vsftpd
-rwxr-xr-x. 1 root root 1.7K Feb 222013 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 112016 ypbind
7、查找/etc目录下最近一周内其内容被修改过,且不属于root或hadoop的文件;# find /etc -mtime -7 -a -not \( -user root -o -user hadoop \)
#
8、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;# cp /etc/rc.d/rc.sysinit /tmp
# ls -lh /tmp
total 24K
drwx------. 2 root root 4.0K Dec 11 19:18 pulse-0QUeAoK4lJM6
-rwxr-xr-x. 1 root root20K Feb 12 17:07 rc.sysinit
# 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
# vim /tmp/rc.sysinit在末行模式下输入:
:%s@^[[:space:]]\+@#&@g
# 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)" ]; thenHOSTNAME=localhost
fi
if [ ! -e /proc/mounts ]; thenmount -n -t proc /proc /proc

# head -n 20 /tmp/rc.sysinit !/bin/bash/etc/rc.d/rc.sysinit - run once at boot timeTaken 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文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符# 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)" ]; thenHOSTNAME=localhost
fi
if [ ! -e /proc/mounts ]; thenmount -n -t proc /proc /proc

# vim /tmp/rc.sysinit在末行模式下输入:
:%s@^#[[:space:]]\+@@g
# head -n 20 /tmp/rc.sysinit !/bin/bash/etc/rc.d/rc.sysinit - run once at boot timeTaken 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;# cat /etc/yum.repos.d/CentOS-Media.repo CentOS-Media.repo#This repo can be used with mounted DVD media, verify the mount point forCentOS-6.You can use this repo and yum to install items directly off theDVD ISO that we release.# To use this repo, put in your DVD and use it with the other repos too:yum --enablerepo=c6-media # or for ONLY the media repo, do this:#yum --disablerepo=\ --enablerepo=c6-media


name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/

      file:///media/cdrom/
      file:///media/cdrecorder/  gpgcheck=1
  enabled=0
  gpgkey=
# vi /etc/yum.repos.d/CentOS-Media.repo
在末行模式下输入:

  :%s/\(enabled\|gpgcheck\)=0/\1=1/g
  # 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

# or for ONLY the media repo, do this:

#yum --disablerepo=\* --enablerepo=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# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
# crontab -lBackup /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文件中# crontab -e
crontab: installing new crontab
# crontab -lBackup /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;密码同用户名;# vim uadd!/bin/bashadd 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
# ll
total 4
-rw-r--r--. 1 root root 155 Feb 12 18:02 uadd
# chmod 755 uadd
# ll
total 4
-rwxr-xr-x. 1 root root 155 Feb 12 18:02 uadd
# 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.
# 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
页: [1]
查看完整版本: 全新Linux+Python高端运维班第三次作业