第六周-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)
N27_whatN27_what
上一篇 2017-08-13 22:52
下一篇 2017-08-13 23:05

相关推荐

  • 马哥教育21期网络班—第13周课程+练习—-samba和vsftp-pam

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和u…

    Linux干货 2016-10-24
  • N22-℡浮生.若夢 ╮第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 集线器:集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离 网桥:是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,       不是共享一条背板总线,可隔离冲突域…

    Linux干货 2016-11-28
  • ![](http://i1.pixiv.net/img-original/img/2016/08/09/20/23/25/58345400_p0.jpg) ![](http://i1.pixiv.net/img-original/img/2016/08/09/20/23/25/58345400_p0.jpg)

    Linux干货 2016-12-26
  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • 马哥教育-第一周作业

    第一部分:计算机组成及功能 电子真空管的出现促使了计算机的诞生; 根据冯●诺依曼的哲学思想,计算机的组成分为五大部分。分别为: 1.     运算器 2.     控制器 3.     存储器 4.   &nb…

    Linux干货 2016-12-04
  • linux目录管理之整合篇

    目录配置:     1,根目录,所有目录都由根目录衍生出,与开机,还原,系统修复等操作有关。     2,根目录下各子目录应存放的文件。             I,/bin和/sbin目录,/bin放置的是单用户维护模式下能被操作的命令,可以被root和一般…

    Linux干货 2017-05-29