第六周-Vim、计划任务及Shell脚本练习

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

cp /etc/rc.d/rc.sysinit /tmp
vim /tmp/rc.sysinit
末行模式输入 :%s@^[[:space:]]\+@#&@g

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

cp /boot/grub.conf /tmp
vim /tmp/grup.conf
末行模式输入 :%s@^[[:space:]]\+@@g

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

vim /tmp/rc.sysinit
末行模式输入 :%s@^#[[:space:]]\+@@g

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

vim /tmp/grup.conf
末行模式输入 ::1,3s@^@#&@

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

vim /etc/yum.repos.d/CentOS-Media.repo
末行模式输入 :%s@\(enabled\|gpgcheck\)=0@\1=1@g

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

crontab -e
0 */4 * * * /bin/cp -a /etc /backup/etc-`date +%Y%m%d%H%M`

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

crontab -e
0 0 * * 2,4,6 /bin/cp /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`

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

crontab -e
0 */2 * * * /bin/grep "^S" /proc/meminfo | /bin/sed '$a\ ' >> /stats/memory.txt

九、工作日的工作时间内,每两小时执行一次echo “howdy”

crontab -e
0 9-18/2 * * 1-5 /bin/echo "howdy"

我在练习crontab的时候,把6-9每道题的操作分别写成函数,通过shell脚本传递参数来调用函数。

以下是shell代码,这样在crontab里调用脚本+参数就可以实现每个操作

#!/bin/bash
#判断所需文件夹是否存在
if [ ! -d /backup/messages_logs ];then
  mkdir -p /backup/messages_logs
fi

if [ ! -d /stats ];then
  mkdir /stats
fi

#定义备份/etc目录
function Backupetc() {
  cp -a /etc /backup/etc-`date +%Y%m%d%H%M`
}

#定义备份messages文件
function Backupmessage() {
  cp /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d`
}

#定义获取内存信息
function meminfo() {
  grep "^S" /proc/meminfo | /bin/sed '$a\ ' >> /stats/memory.txt
}

#定义echo特定文本
function echostr() {
  echo "howdy"
}

#case分多支语句,判断脚本第一个参数,如没有符合条件则会给出错误提示
case $1 in
 etc)
   Backupetc
    ;;
 messages)
   Backupmessage
    ;;
 mem)
   meminfo
    ;;
 echo)
   echostr
    ;;
 *)
   echo "Command error,Please re-enter.(etc|messages|mem|echo)"
    ;;
esac

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

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

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

#!/bin/bash  

time=`date +%Y%m%d%H%M`                  #第十题
mkdir /tmp/testdir-$time

touch /tmp/testdir-$time/file{1..100}    #第十一题

#for i in `seq 1 100`                    #第十一题循环法
#do
#touch /tmp/testdir-$time/file$i
#done

sed -n 'n;p' /etc/passwd | awk -F: '{print $1}'    #第十二题

原创文章,作者:N27_what,如若转载,请注明出处:http://www.178linux.com/84689

(0)
上一篇 2017-08-13 22:52
下一篇 2017-08-13 23:05

相关推荐

  • ansible

    运维工具介绍 Ansible Ansible优点:  Agentless       (去中心化)  Stupied Simple (上手简单,学习曲线平滑)  SSH by default (安全,无需安装客户端)  YAML no code,定制剧本 (语法简单,维护方便) 自动工具衍…

    Linux干货 2017-05-23
  • 数据分析≠Hadoop+NoSQL,不妨先看完善现有技术的10条捷径

    让业务搭乘大数据技术确实是件非常有吸引力的事情,而Apache Hadoop让这个诱惑来的更加的猛烈。Hadoop是个大规模可扩展数据存储平台,构成了大多数大数据项目基础。Hadoop是强大的,然而却需要公司投入大量的学习精力及其它的资源。 如果得到正确的应用,Hadoop确实能从根本上提升你公司的业务,然而这条Hadoop的应用之路却充满了荆棘。另一个方面…

    Linux干货 2015-02-25
  • 博客

       这是我的第一篇博客!   平时学习中,总会遇到或大或小的问题,以及一些新的感悟,在当时能够十分清晰记得,但过一些时日,便发现又忘记了。以前十分明白的东西,又变得有些模糊,甚至完全忘记。因此特别需要记录下来,方便日后的查阅或分享给其他遇到类似问题的朋友。    如果以后忘记的某些知识,这时候,翻开以往博客…

    Linux干货 2017-07-11
  • N22-第八周作业

    第八周 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。      集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。    &n…

    Linux干货 2016-10-09
  • LinuxGrub修复方法

    Linux因Grub损坏的修复方法: 1)救援模式修复(备份了MBR) 2)救援模式修复(无备份MBR) 3)Grub下手动启动Linux系统 1、救援模式修复(备份了MBR)     MBR中存放了Bootloader信息(Grub),在磁盘的最开始512字节,当这512字节出现故障,系统将无法引导启动。 &nbsp…

    Linux干货 2016-06-22
  • Codis集群3.03安装配置基础

    Codis基础 01.codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别。 codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面客户端来说是透明的,可以简单的认为后边连接是一个内存无限大的Redis服务。 codis架构图如下: 02.c…

    Linux干货 2016-09-26