計劃任務管理
linux
a) At 一次性人物設置shell
一次性計劃任務bash
服務腳本名稱:/etc/init.d/atd服務器
設置格式:at [HH:MM] [yyyy-mm-dd]微信
計劃執行任務的時間、日期必須安排在當前系統的時刻以後,不然沒法正確設置計劃任務app
若只指定時間則表示當太的該時間,若只指定日期則表示該日期的當前時間ssh
能夠在at交互環境中輸入多條命令,最後按Ctrl+D組合鍵提交ide
對應的系統服務atd必須已經運行,不然可能會出現錯誤提示:Can't open /var/run/atd.pid to signal atd. No atd running?url
Eg:先經過date確認當前系統時間,並設置2011.2.21的14:55分自動執行的任務:統計該時間點由root用戶運行的進程的數量,並將該數值保存到“/tmp/ps.root”中spa
b) Crontab 週期性任務設置
按照預先設置的時間週期(分鐘、小時、天……)重複執行用戶指定的命令操做,屬於週期性計劃任務
服務腳本名稱:/etc/init.d/crond
啓用週期性任務有一個前提條件,即對應的系統服務crond必須已經運行
全局配置和系統默認配置中的內容通常不須要用戶去修改,用戶只需設置/var/spool/cron/目錄下與本賬號同名的文件便可
主要設置文件:
全局配置文件,位於文件:/etc/crontab
系統默認的設置,位於目錄:/etc/cron.*/
用戶定義的設置,位於文件:/var/spool/cron/用戶名
1) Crontab 的配置文件和目錄
/etc/crontab —— 系統任務配置文件
設置維護linux系統所需的任務,由linux系統及相關程序在安裝時自動設置
eg:
[root@localhost ~]# cat /etc/crontab SHELL=/bin/bash 設置執行計劃任務的shell環境 PATH=/sbin:/bin:/usr/sbin:/usr/bin 定義可執行命令及程序的路徑 MAILTO=root 將任務輸出信息發送到指定的用戶郵箱 HOME=/ 執行計劃任務時使用的主目錄 # run-parts 01 * * * * root run-parts /etc/cron.hourly 設置每小時執行的計劃任務 02 4 * * * root run-parts /etc/cron.daily 設置天天執行的計劃任務 22 4 * * 0 root run-parts /etc/cron.weekly 設置每週執行的計劃任務 42 4 1 * * root run-parts /etc/cron.monthly 設置每個月執行的計劃任務
|
/var/spool/cron/ —— 用戶cron任務的配置文件存放目錄
由用戶自行設置(使用crontab命令)的cron計劃任務將被保存到目錄/var/spool/cron中,文件名與用戶名相同
Eg:root用戶的cron計劃任務保存在配置文件/var/spool/cron/root中
Crond守護進程會自動檢查/etc/crontab文件、/etc/cron.d/目錄以及/var/spool/cron目錄中的改變,因此修改後無需重啓
2) 使用crontab命令管理用戶的計劃任務
- e :設置計劃任務列表
- u :指定所管理的計劃任務屬於哪一個用戶,默認時針對當前用戶(本身),通常只有root用戶有權限使用此選項(用於編輯、刪除其餘用戶的計劃任務)
- l :列表顯示計劃任務
- r :刪除計劃任務列表
1. 編輯用戶的計劃任務列表
時間數值的特殊表示方法
* 表示該範圍內的任意時間
, 表示間隔的多個不連續時間點
- 表示一個連續的時間範圍
/ 指定間隔的時間頻率
應用示例
0 17 * * 1-5 週一到週五天天17:00
30 8 * * 1,3,5 每週1、3、五的8點30分
0 8-18/2 * * * 8點到18點之間每隔2小時
Eg:
a) 天天早上7:50自動開啓sshd服務,22:50關閉sshd服務
50 7 * * * /sbin/service sshd start
50 22 * * * /sbin/service sshd stop
b) 每隔5天清空一次FTP服務器公共目錄“/var/ftp/pub”中的數據
0 0 */5 * * /bin/rm -rf /var/ftp/pub/*
c) 每週六的7:30從新啓動系統中httpd服務
30 7 * * 6 /sbin/service httpd restart
d) 每週1、周3、週五下午17:30使用tar命令自動備份/etc/httpd目錄
30 17 * * 1,3,5 /bin/tar jcf httpdconf.tar.bz2 /etc/httpd
普通用戶執行crontab -e 設置本身的計劃任務
Eg:jerry設置在每週日晚上23:55將/etc/passwd文件內容複製到宿主目錄中,保存爲pwd.txt文件
Crontab - e - u jerry
55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
2. 查看用戶的計劃任務列表
crontab -l [-u 用戶名]
eg:查看用戶root本身的計劃任務
crontab - l
eg:查看用戶jerry的計劃任務
crontab - l - u jerry
3. 刪除用戶的計劃任務列表
crontab -r [-u 用戶名]
歡迎關注微信公衆號:小溫研習社