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