第六周-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.www58058.com/84689

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

相關推薦

  • M22 xfs文件系統命令總結

    Centos6.0及之前的默認文件系統是ext系列的,而在最新的Centos7上卻使用了xfs作為默認的文件系統。在Centos7中xfs文件系統包括如下命令: xfs_admin:修改xfs文件系統的參數,需要先卸載分區 用法:xfs_admin [ -eflpu ] [ -c 0|1 ] [ -L label ] [ -U uuid ] device x…

    Linux干貨 2017-03-16
  • 馬哥教育網絡班21期+第四周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限; [root@localhost /]# cp -r /etc/skel /home/tuser1 [root@localhost /]# chmod&nb…

    Linux干貨 2016-07-22
  • 馬哥教育第一天記

    一天學習心得和記錄

    Linux干貨 2018-03-26
  • Http實踐

    練習:搭建虛擬主機     (1)基于主機名實現三個虛擬主機     (2) 每虛擬主機使用獨立的訪問日志和錯誤日志     (3) 第三個虛擬主機的/admin要進行用戶訪問認證     (4) 在…

    Linux干貨 2016-09-30
  • python之psutil模塊

    python 安裝psutil 來實現獲取系統信息  # yum -y install python*pip # yum -y groupinstall “Development Tools # yum -y install python34-devel.x86_64 # pip3 install –upgrade pip # pip3 inst…

    Linux干貨 2017-03-08
  • 學習宣言

      人生還有很多精彩時刻,需要你去探尋,linux 就是這個深淵的入口,我其實已迫不及待,伙伴們別怕,跟我來,一路披荊斬棘,踏尋生命的足跡!Fighting!

    Linux干貨 2016-10-25
欧美性久久久久