2014IT鐵人賽-26-排程工作
今天練習排程工作 cron / at 的管理吧
筆記部份:
針對一些週期性的工作或是一些突發的工作, 一般我們會撰寫 shell script 然後搭配 cron 或是 at 這樣的排程指令來達成, 所以今天我們就來練習排程相關指令吧.
**cron 定時排程**
cron 符合條件就執行
crontab -e 語法
分 時 日 月 星期幾 指令
* * * * * <代表每分鐘執行>
0 * * * * <每小時執行, 分針為0時>
*/5 * * * * <每五分鐘執行一次>
/var/spool/cron/tabs/ 存放cron 的排程工作(個人)
/etc/crontab 系統的排程工作
- 利用 /usr/lib/cron/run-crons 檢查相關工作是否被執行
- /etc/cron.hourly 每小時要做的排程工作(預設沒有工作)
- /etc/cron.daily/ 每日要做的排程工作
- /etc/cron.weekly 每周要做的排程工作(預設沒有工作)
- /etc/cron.monthly 每月要做的排程工作(預設沒有工作)
**at 在指定的時間執行一次**
針對突發的工作, 來進行工作的安排
/var/spool/atjobs 存放 at 工作
開始練習吧
Lab: Cron job
I.每兩個小時監控
1.磁碟使用空間
2.記憶體使用量
II.每天早上九點 max 的 Mail 要收到前一天的 Report
#vi /usr/local/bin/task.sh <編輯一個shell script 來執行>
#!/bin/bash <宣告執行的shell >
date >> /tmp/report.txt <將系統時間 以附加的方式寫入>
df -h >> /tmp/report.txt <將系統空間 以附加的方式寫入>
free >> /tmp/report.txt <將記憶體用量 以附加的方式寫入>
#chmod a+x /usr/local/bin/task.sh <給予執行的權限>
#ls /tmp | grep report <請觀察資訊 無report.txt>
#/usr/local/bin/task.sh <執行剛剛的shell script 測試>
#ls /tmp <請觀察資訊 有無report.txt>
#cat /tmp/report.txt <請觀察資訊>
#ls /var/spool/cron/tabs <執行crontab 前 請觀察資訊>
#crontab -e <編輯crontab>
0 */2 * * * /usr/local/bin/task.sh
0 9 * * * mail -s "Report" max < /tmp/report.txt
5 9 * * * rm -rf /tmp/report.txt
#ls /var/spool/cron/tabs <執行crontab 後 請觀察資訊>
#crontab -l <列出crontab -l 列出>
#crontab -r <移除crontab -r 移除>
#ls /var/spool/cron/tabs <請觀察資訊>
Lab: at
#rcatd status <觀察atd的資訊>
#rcatd start <啟動atd>
#at now +2min
at>wall /etc/fstab <廣播/etc/fstab給全體人員>
Ctrl + D <結束編輯>
#atq <列出at的工作>
Fun with Day 26 ~
沒有留言:
張貼留言