馬哥2016全新Linux+Python高端運維班第六週做業

一、複製/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以致少一個空白字符開頭的行的行首加#;編程

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

命令以下:bash

[root@csd ~]# cp /etc/rc.d/rc.sysinit /tmp       ##複製文件
[root@csd ~]# vim /tmp/rc.sysinit            ##vim編輯該文件

wKiom1fT-jLAzcATAAYqn2r_W4M109.jpg

命令結果以下(下圖紅框爲與上圖對比效果):編輯器

wKioL1fT-pOQavsSAAV9HwoElnc606.jpg

二、複製/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;ide

答:命令以下spa

[root@csd ~]# cp /boot/grub/grub.conf /tmp       ##複製文件至/tmp下
[root@csd ~]# vim /tmp/grub.conf             ##vim編輯該文件

wKiom1fUAXiQ4osAAARrWZiyJkY954.jpg

結果以下:3d

wKiom1fUAZjzav0iAAQxpjmyPQo162.jpg

三、刪除/tmp/rc.sysinit文件中的以#開頭,且後面跟了至少一個空白字符的行行的#和空白字符orm

答:使用vim編輯器查找替換功能blog

wKioL1fUB-qBeN2EAAWuNJywK74477.jpg

 結果以下:crontab

wKioL1fUA3aSwvNrAASdQJR9oZo803.jpg

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

答:

wKiom1fUCUDBgHI0AASz3dqZ35A506.jpg

結果以下:

wKiom1fUCWbwy88eAAROvCwVsVc000.jpg

五、將/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)

wKiom1fUDdWjtjXzAANwxZK1_nM997.jpg

結果以下:

wKioL1fUDivw1JT1AANQMS2KGiA064.jpg

修改"enabled=0"爲"enabled=1",命令以下:

wKiom1fUD-Ty03GEAAP_qkYw34c559.jpg

結果以下:

wKiom1fUEAXhxHJoAANcWNeUMfQ641.jpg

六、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名爲形如etc-201608300202

答:命令以下:

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

(注:執行計劃任務,可直使用crontab -e來編輯。格式爲「分 小時 日 月 星期 命令」)

wKiom1fU_NqDy5_uAAHSHHjaPsg847.jpg

查看計劃任務:

wKioL1fU_b3Dt_wcAAF5fgrOpaY754.jpg

七、每週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

計劃任務以下:

wKiom1fVAfSgYez-AAICuLIfN5A732.jpg

八、天天每兩小時取當前系統/proc/meminfo文件中的全部以S開頭的信息至/stats/memory.txt文件中

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

計劃任務入下:

wKiom1fVAuXBDoccAAIh3Qrp3WQ407.jpg

九、工做日的工做時間內,每兩小時執行一次echo "howdy"

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

計劃任務以下:

wKioL1fVA6OgkkYCAAJSROJg_Dg558.jpg

腳本編程練習

十、建立目錄/tmp/testdir-當前日期時間;

答:

#/bin/bash
export dirtime=`date +%y%m%d%H%M%S`       ##定義一個名稱爲當前時間的變量 
mkdir /tmp/testdir-$dirtime           ##建立以當前時間爲名稱的文件夾

結果以下:

wKiom1fUXSSitOk6AAObHziPOYU090.jpg

十一、在此目錄建立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)

wKioL1fUXmGzr35XAAXufRfmnpQ935.jpg

十二、顯示/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)

wKiom1fUXyWTANvNAAch-vxeaw8035.jpg

1三、建立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                          ##完成循環後退出

wKioL1fUX53A2We3AAKbj_9_W2w705.jpg

1四、在/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)

wKiom1fUX-7TAoqrAAKRGfHkULE106.jpg

1五、把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)

wKioL1fUYF2SlP3_AAYMjeKiL6w588.jpg

相關文章
相關標籤/搜索