星期六, 10月 11, 2014

2014IT鐵人賽-26-排程工作

2014IT鐵人賽-26-排程工作


今天一樣使用 EasyCloud  雲端簡單龍的帳戶, 那就登入 https://gemini.nchc.org.tw/ 來開始練習openSUSE 基礎指令吧.


今天練習排程工作 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 ~

沒有留言: