1. 程式人生 > >剩余定時任務、第四關練習題、vim快捷鍵補充

剩余定時任務、第四關練習題、vim快捷鍵補充

width 生產 ado 內容 表達式 adding xargs java local


作者George

歸檔:學習筆記

2018/1/4



本章正題:剩余定時任務、第四關練習題、
vim快捷鍵補充

1.1 定時任務中-命令或腳本定向到二個位置。(二選一)

情況一:追加到文件 >> /tmp/time.log 2>&1 (相當於>> /tmp/time.log 2>>/tmp/time.log

註:1. 也可以這麽寫:&>> /tmp/time.log

2. 如果腳本執行錯誤,就會把顯示到屏幕上的錯誤信息追加到這文件中。

3. 如果執行成功屏幕上沒有任何提示,所以就沒有信息寫入文件。


情況二:定向到空

> /dev/null 2>&1 :把前面命令的正確和錯誤的 結果都定向到黑洞中

註: 也可以這麽寫:&>/dev/null

1.1.1 如果沒有定向到空或追加到文件,會發生什麽

解:這樣很容易導致硬盤Inode滿了,從而導致服務器不正常。

1postfix開啟的時候,系統會不斷的給你發郵件

所以會提示:You have new mail in /var/spool/mail/root

註:會導致這個郵件var/spool/mail/root越來越大

2postfix關閉的時候,會把郵件存放在郵件臨時目錄

郵件臨時目錄:/var/spool/postfix/maildrop/

註:也會占用大量Inode

刪除大量小文件方法:

1. 縮小範圍刪除 ls 1*.txt |xargs rm

2. 全部刪除(文件太多有可能失敗) ls *.txt |xargs rm

3. ls *.txt |xargs -n數字 rm

4. 刪除目錄

創建大量小文件方法:

echo {1..500000}.txt |xargs touch

1.1.2 避免不必要的程序及命令輸出

如:tar zcvf 中的v (顯示詳細過程),可省略

1.1.3 定時任務腳本中的程序文件,盡量使用絕對路徑


1.測試命令

[root@georgekai /]# cd / && tar zcf /tmp/etc-$(date +%F).tar.gz etc/

:最好進入被打包文件的上一層目錄,使用相對路徑打包

2.寫入腳本中

[root@georgekai /]# echo "/bin/tar zcf etc-$(date +%F).tar.gz etc" > /server/scripts/etc.sh

3.檢查腳本是否可用

[root@georgekai /]# sh /server/scripts/etc.sh

註:測試腳本時,是否會顯示到指定文件,取決於命令的作用是否會顯示到屏幕上。

#tar etc

* * * * * /bin/sh /server/scripts/etc.sh > /dev/null 2>&1

註:sh -x :顯示腳本執行過程 (裏面的+號表示層次)

4.查看日誌或看看是否執行成功

[root@georgekai /]# tail -f /var/log/cron

Jan 4 09:49:02 georgekai CROND[5590]: (root) CMD (/bin/sh /server/scripts/date.sh >> /tmp/time.log 2>&1)

5. 根據實際要求在定時任務中修改時間

#tar et

00 01 * * * /bin/sh /server/scripts/etc.sh > /dev/null 2>&1


1.1.4 定時任務運行腳本的時候(PATH只認識2個路徑/usr/bin /bin

如:ifconfig ip 會找不到路徑

註:1. 定時任務運行命令時不影響

2. 只有在定時任務運行腳本時,PATH才只認識2個路徑。

解決方法:

方法一:使用命令的絕對路徑

方法二:PATH在腳本的開頭重新定義一下

將這條命令寫入腳本的開頭:

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

什麽時候用方法2tomcat

註:請參考http://oldboy.blog.51cto.com/2561410/1541515

方法三:腳本中寫入 source /etc/profile

1.1.5 圖形定時任務總結

系統定時任務配置文件:/etc/crontab

用戶定時任務配置文件:/var/spool/cron/root

技術分享圖片

1.2 第四關練習題

1.2.1 2個小時打包/etc/services備份到/tmp

1. 測試命令

[root@georgekai ~]# cd / && tar zcf /tmp/svr.tar.gz etc/services

2. 寫入腳本

[root@georgekai ~]# echo "cd / && tar zcf /tmp/svr.tar.gz etc/services" > /server/scripts/svr.sh

3. 測試腳本

[root@georgekai ~]# sh /server/scripts/svr.sh

[root@georgekai ~]# ll /tmp/

4. 寫入定時任務

[root@georgekai ~]# crontab -e

#backup /etc/services

00 */2 * * * /bin/sh /server/scripts/svr.sh >/dev/null 2>&1

5. 查看日誌和命令執行效果

[root@georgekai ~]# tail -f /var/log/cron

[root@georgekai ~]#ll /tmp/

1.2.2 每天晚上 12 點,打包站點目錄/var/www/html 備份到/data 目錄下(最好每次備份按時間

生成不同的備份包)

1. 測試命令

[root@georgekai /]# cd /var/www/ && tar zcf /data/html-$(date +%F_%H).tar.gz html/

[root@georgekai /]# ls /data/

html-2018-01-04_12.tar.gz

2. 寫入腳本

[root@georgekai /]# echo "cd / && tar zcf /data/html-$(date +%F_%H).tar.gz var/www/html" > /server/scripts/html.sh

3. 測試腳本

[root@georgekai /]# sh /server/scripts/html.sh

[root@georgekai /]# ls /data/

html-2018-01-04_12.tar.gz

4.寫入定時任務測試每分鐘的效果

#backup /var/www/html

* * * * * /bin/sh /server/scripts/html.sh >/dev/null 2>&1

5.查看日誌和測試命令執行的效果

[root@georgekai /]# tail -f /var/log/cron

Jan 4 12:12:01 georgekai CROND[1438]: (root) CMD (/bin/sh /server/scripts/html.sh >/dev/null 2>&1)

[root@georgekai /]# ll /data/

total 4

-rw-r--r--. 1 root root 117 Jan 4 12:13 html-2018-01-04_12.tar.gz

6. 根據實際情況修改時間

#backup /var/www/html

00 00 * * * /bin/sh /server/scripts/html.sh >/dev/null 2>&1

1.2.3 每周 六、日 上午 9:00 和下午 1400 來老男孩這裏學習(執行程序/server/script/oldboy.sh

代替學習)

00 09,14 * * * /bin/sh /server/scripts/oldboy.sh > /dev/null 2>&1

1.2.4 .請描述下列路徑的內容是做什麽的?

/etc/sysctl.conf linux內核配置文件

/etc/rc.local 開機自啟的軟件

/etc/hosts 解析主機名與ip的對應關系

/etc/fstab 開機自動掛載

/var/log/secure 用戶登錄信息

1.2.5 請說出下列 grep 正則表達式的含義

^ 以什麽什麽開頭

$ 以什麽什麽結尾

.(點號) 任意一個字符,包括空格

\ 轉義符號

* 前一個字符連續出現0次或0次以上

{n,m} 前一個字符連續最少出現n次,最多出現m

[^t] 排除帶有t這字符的行

^[^t] 排除以t開頭的行

1.2.6 vi 命令考察,根據中文給出命令

退出保存

wq




退出並強制保存,!為強制的意思

wq!

強制退出,不保存

q!

光標移動到文件的最後一行

G 或:$

光標移動到文件的第一行

gg

從光標所在位置將光標移動到當前行的開頭 ^


從光標所在位置將光標移動到當前行的結尾 $


取消上一次的動作 u



刪除一行 dd


刪除當前行到文件的最後一行 dG



向上搜索 /


向上搜索 ?


vim如何查詢 :help G

:help :wq

:h G

:h :wq

總結:

1. 定時任務與故障案例,沒有定向到空或追加到文件

2. 環境變量故障

如:linux定時任務生產java服務無法定向到空或追加到文件

請參考http://oldboy.blog.51cto.com/2561410/1541515

3. 定時任務練習題

4. vi/vim快捷鍵



剩余定時任務、第四關練習題、vim快捷鍵補充