megeedu Linux+Python高级运维班 3期 第六周作业

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了megeedu Linux+Python高级运维班 3期 第六周作业相关的知识,希望对你有一定的参考价值。

本周作业内容:

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

[[email protected] ~]# cp /etc/rc.d/rc.sysinit /tmp/    #复制文件
[[email protected] ~]# vim /tmp/rc.sysinit          #编辑文件
:%s/^[[:space:]]/#&/                      #末行模式下查找替换

替换结果对比:

技术分享

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

[[email protected] ~]# cp /boot/grub/grub.conf /tmp/    #复制文件
[[email protected] ~]# vim /tmp/grub.conf               #vim编辑文件
:%s/^[[:space:]]\+//                                 #末行模式查找替换,不指定替换内容即为删除

删除结果对比:

技术分享

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

[[email protected] ~]# vim /tmp/rc.sysinit                         #vim 编辑文件   
:%s/^#[[:space:]]\+//                                           #末行模式查找替换

删除结果对比:

技术分享

4、为/tmp/grub.conf文件中前三行的行首加#号;

[[email protected] ~]# vim /tmp/grub.conf         #vim 编辑文件
:1,3s/^/#&/                                    #末行模式查找替换,1,3指定搜索范围,
:w /tmp/grub.conf.bak                          #另存为 /tmp/grub.conf.bak 
[[email protected] ~]# vimdiff /tmp/grub.conf /tmp/grub.conf.bak     #vimdiff 对比两个文件

对比结果:

技术分享

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

[[email protected] ~]# cp /etc/yum.repos.d/CentOS-Media.repo /tmp/    #复制文件
[[email protected] ~]# vim /tmp/CentOS-Media.repo                     #vim 编辑文件
:%s/enabled=0/enabled=1/g                                          #全局查找替换
:%s/gpgcheck=0/gpgcheck=1/g

替换前后对比:

技术分享

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201608300202

[[email protected] ~]# mkdir /backup
[[email protected] ~]# crontab -e
0 */4  * * * /bin/cp /etc /backup/etc-`date +%Y%m%d%H%M`

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

[[email protected] ~]# crontab -e
0 0 * * 2,4,6 /bin/cp -a /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`

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

[[email protected] ~]# mkdir /stats
[[email protected] ~]# crontab -e
0 */2 * * * /bin/grep ‘^S‘ /proc/meminfo > /stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo "howdy"

[[email protected] ~]# crontab -e
0 8-17/2 * * 1,2,3,4,5  /bin/echo "howdy"        #1-5为工作日,8-17为工作时间

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间;

[[email protected] ~]# vim /MK-testdir.sh
#!/bin/bash
mkdir /tmp/testdir-`date +%Y%m%d%H%M`

[[email protected] ~]# chmod +x /MK-testdir.sh 
[[email protected] ~]# ll /MK-testdir.sh 
-rwxr-xr-x. 1 root root 54 9月   9 10:41 /MK-testdir.sh
[[email protected] ~]# /MK-testdir.sh
[[email protected] ~]# ls /tmp/
3    CentOS-Media.repo  maxusers.txt  testdir-201609091042
3]   crontab.RT2uVE     mylinux       tfile-2016-08-12-17-01-01
a_c  etc.conf           mytest1       yum.log
a_d  etc.test           mytest2       yum_save_tx-2016-08-01-01-55m_XEdJ.yumtx
b_c  grub.conf          mytest3
b_d  grub.conf.bak      rc.sysinit
[[email protected] ~]#

11、在此目录创建100个空文件:file1-file100

[[email protected] tmp]# vim /MK-testdir.sh 
#!/bin/bash
dir=/tmp/testdir-`date +%Y%m%d%H%M`
mkdir $dir
if [ $? -eq 0 ]; then      #判断之前目录是否创建成功,若创建成功则进入循环创建文件file1-file100
  for i in {1..100};do
    touch $dir/file$i
  done
  echo ‘touch file1-file100 success.‘
else
  echo ‘touch file1-file100 failed.‘
fi
[[email protected] /]# ./MK-testdir.sh 
touch file1-file100 success.
[[email protected] /]# ll /tmp/testdir-201609091148
总用量 0
-rw-r--r--. 1 root root 0 9月   9 11:48 file1
-rw-r--r--. 1 root root 0 9月   9 11:48 file10
-rw-r--r--. 1 root root 0 9月   9 11:48 file100
-rw-r--r--. 1 root root 0 9月   9 11:48 file11
......

12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

[[email protected] /]# vim test-6-12.sh 
#!/bin/bash
cat -n /etc/passwd | sed -n ‘n;p‘ | cut -d: -f1
[[email protected] /]# ./test-6-12.sh 
     2    hadoop
     4    daemon
     6    lp
     8    shutdown
.........

13、创建10用户user10-user19;密码同用户名;

[[email protected] work]# vim test-6.13.sh 
#!/bin/bash
#
for i in {10..19};do                  
  if id user$i &> /dev/null; then          
    echo "user$i exists."                
  else
    useradd user$i &> /dev/null      
     if [ $? -eq 0 ]; then              
        echo "user$i" | passwd --stdin user$i &> /dev/null
        echo "add user$i success."    
     fi
  fi
done
[[email protected] work]# ./test-6.13.sh 
Add user10 success.
Add user11 success.
Add user12 success.
Add user13 success.
Add user14 success.
Add user15 success.
Add user16 success.
Add user17 success.
Add user18 success.
Add user19 success.

14、在/tmp/创建10个空文件file10-file19;

[[email protected] work]#vim test-6.14.sh 
#!/bin/bash

for i in {10..19};do                  
  touch /tmp/file$i
    if [ $? -eq 0 ];then
       echo "file$i touch success."
    fi
done
[[email protected] work]# ./test-6.14.sh 
file10 touch success.
file11 touch success.
file12 touch success.
file13 touch success.
file14 touch success.
file15 touch success.
file16 touch success.
file17 touch success.
file18 touch success.
file19 touch success.

15、把file10的属主和属组改为user10,依次类推。

[[email protected] work]#vim test-6.15.sh
#!/bin/bash
#
for i in {10..19};do                       
    if [ -e /tmp/file$i ];then             
       chown user$i:user$i /tmp/file$i &> /dev/null  
    else 
       echo "No Find The file."             
    fi
done

[[email protected] work]# ./test-6.15.sh 
[[email protected] work]# ll /tmp/ | grep user
-rw-r--r--.  1 user10 user10     0 9月   9 12:30 file10
-rw-r--r--.  1 user11 user11     0 9月   9 12:30 file11
-rw-r--r--.  1 user12 user12     0 9月   9 12:30 file12
-rw-r--r--.  1 user13 user13     0 9月   9 12:30 file13
-rw-r--r--.  1 user14 user14     0 9月   9 12:30 file14
-rw-r--r--.  1 user15 user15     0 9月   9 12:30 file15
-rw-r--r--.  1 user16 user16     0 9月   9 12:30 file16
-rw-r--r--.  1 user17 user17     0 9月   9 12:30 file17
-rw-r--r--.  1 user18 user18     0 9月   9 12:30 file18
-rw-r--r--.  1 user19 user19     0 9月   9 12:30 file19
-rw-r--r--.  1 root   root     854 8月  19 18:07 maxusers.txt
[[email protected] work]#


本文出自 “博客” 博客,谢绝转载!

以上是关于megeedu Linux+Python高级运维班 3期 第六周作业的主要内容,如果未能解决你的问题,请参考以下文章

megeedu Linux+Python高级运维班 3期 第四周作业

megeedu Linux+Python高级运维班 3期 第六周作业

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

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

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

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