Linux—計劃任務管理

計劃任務管理
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

Eg:設置一條計劃任務,在當天的21:30自動關閉當前系統

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.         編輯用戶的計劃任務列表

crontab -e [-u 用戶名]

 時間數值的特殊表示方法

*      表示該範圍內的任意時間

,   表示間隔的多個不連續時間點

      表示一個連續的時間範圍

/     指定間隔的時間頻率

 應用示例

0 17 * * 1-5                週一到週五天天17:00

30 8 * * 1,3,5   每週1、3、五的8點30分

0 8-18/2 * * * 8點到18點之間每隔2小時

0 * */3 * *                  每隔3天

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 用戶名]

歡迎關注微信公衆號:小溫研習社

歡迎關注yanxishe.png

相關文章
相關標籤/搜索