首页 > 代码库 > 马哥2016全新Linux+Python高端运维班第六周作业

马哥2016全新Linux+Python高端运维班第六周作业

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

答:可使用vim的查找替换功能完成;

命令如下:

[root@csd ~]# cp /etc/rc.d/rc.sysinit /tmp       ##复制文件
[root@csd ~]# vim /tmp/rc.sysinit            ##vim编辑该文件

技术分享

命令结果如下(下图红框为与上图对比效果):

技术分享

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

答:命令如下

[root@csd ~]# cp /boot/grub/grub.conf /tmp       ##复制文件至/tmp下
[root@csd ~]# vim /tmp/grub.conf             ##vim编辑该文件

技术分享

结果如下:

技术分享

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

答:使用vim编辑器查找替换功能

技术分享

 结果如下:

技术分享

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

答:

技术分享

结果如下:

技术分享

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

答:

:%s/enabled=0/enabled=1          ##查找替换"enabled=0"为"enabled=1"
:%s/\(gpgcheck=\)0/\11         ##查找替换"gpgcheck=0"为"gpgcheck=1",可使用条件引用

 修改"enabled=0"为"enabled=1",命令如下:

(注:下图演示的文件为/etc/yum.repos.d/rhel-source.repo)

技术分享

结果如下:

技术分享

修改"enabled=0"为"enabled=1",命令如下:

技术分享

结果如下:

技术分享

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

答:命令如下:

00 */4 * * * root /bin/usr/tar -cjf /backup/etc-`date +%y%m%d%H%M` /etc

(注:执行计划任务,可直使用crontab -e来编辑。格式为“分 小时 日 月 星期 命令”)

技术分享

查看计划任务:

技术分享

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

答:00 6 * * 2,4,6 root /bin/cp /var/log/messages /backup/messages_logs/messages-`date +%y%m%d`.bak

计划任务如下:

技术分享

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

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

计划任务入下:

技术分享

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

答:00 */2  * * 1-5 /usr/bin/echo "howdy"

计划任务如下:

技术分享

脚本编程练习

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

答:

#/bin/bash
export dirtime=`date +%y%m%d%H%M%S`       ##定义一个名称为当前时间的变量 
mkdir /tmp/testdir-$dirtime           ##创建以当前时间为名称的文件夹

结果如下:

技术分享

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

答:

#/bin/bash
export dirtime=`date +%y%m%d%H%M%S`        ##定义一个名称为当前时间的变量 
mkdir /tmp/testdir-$dirtime            ##调用变量创建以当前时间为名称的文件夹
for f in {1..100};do               ##循环次数
  touch /tmp/testdir-$dirtime/file$f       ##在规定的文件夹内创建文件
done

 结果如下:(mk已用alias定义,alias=./test1.sh)

技术分享

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

答:

#bin/bash
export nu=2                                        ##定义一个变量,作为循环中的对比条件
for idnum in {1..100};do                    ##循环次数
    cat /etc/passwd -n | egrep "\b$nu[[:space:]]\b*"   ##输出在passwd文件中以该变量开头且后面跟一个空格的内容
    let nu+=2                                      ##由于要输出passwd文件中所有的偶数,我们让变量自加2
done                                                  ##完成循环后退出

 结果如下:(mk已用alias定义,alias=./test1.sh)

技术分享

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

答:

#/bin/bash
export u=10                      ##定义一个变量为10
for username in {1..10};do              ##循环10次
  if id user$u &> /dev/null;then         ##条件判断,用于判断用户是否已存在
    echo "用户 user$u 存在"                   
  else                                           
    useradd user$u                 ##若不存在则添加该用户
    echo "user$u" | passwd --stdin user$u >> /dev/null ##修改用户密码同用户名
    echo "用户 user$u 添加成功,密码同用户名。请及时修改"
    let u+=1                    ##让变量自加1
  fi                         ##条件判断完成
done                          ##完成循环后退出

技术分享

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

答:

#/bin/bash
export i=10                     ##定义一个变量为10
for t in {1..10};do                ##循环10次
  if test -e /tmp/file$i;then          ##"test"判断文件是否存在,存在则为真,否则为假
     echo "文件已存在"
  else
     touch /tmp/file$i             ##创建文件
     let i+=1                  ##让变量自加1
  fi                        ##判断结束
done                         ##完成循环后退出

结果如下:(mk已用alias定义,alias=./test1.sh)

技术分享

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

答:

#/bin/bash                               
export i=10                    ##定义一个变量为10
for t in {1..10};do               ##循环10次  
    chown user$i:user$i /tmp/file$i     ##修改文件的属组和属主为user+当前变量
    echo "文件user$i 属组属主已修改"
    let i+=1                 ##让变量自加1
done

  结果如下:(mk已用alias定义,alias=./test1.sh)

技术分享

本文出自 “时光之书” 博客,谢绝转载!

马哥2016全新Linux+Python高端运维班第六周作业