一、复制/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