歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux中的計劃任務

Linux中的計劃任務

日期:2017/2/28 14:28:27   编辑:Linux教程

Linux的計劃任務分為兩類:

1,一次性執行:

常用命令:at, batch,依賴於atd服務

2,周期性執行:

常用命令:crontab,依賴於crond服務

一次性任務執行:

用法:

#at TIME

at> /bin/sync 輸入需要執行的命令或腳本

at> “Ctrl+d” 輸入Cry+d提交任務


TIME:的幾種格式

#at now+3min 相對時間

#at 11:30 或是絕對時間

#at noon, midnight, teatime(4:00pm) 或是模糊時間

man at查看其他詳細時間表示方法

at命令選項:

-m:當at工作完成後,即使沒有輸出信息,也會以mail通知用戶工作已完成

-l:列出當前正在等待執行的任務隊列

#at -l= #atq

-d:刪除尚未執行的任務

#at -dJOB_ID = atrm JOB_ID

-f:指定執行對應目錄下的腳本

#at-f /PATH/TO/AT_SCRIPT TIME 指定執行對應目錄下的腳本

此處/PATH/TO/AT_SCRIPT稱為at腳本

例:at的使用實例

通常在改遠程主機ip之前,為避免修改後的新IP不通,導致無法連接,此場景中則可以先執行一個at任務

#at now 10min

at>ifconfig eth0 IP ##此IP為目前在使用的正確的IP

先發送此at任務,再去改IP,即使改錯,10分鐘後也會自動恢復。

與at的不同是,batch可以不需要指定時間,自動選擇系統空閒時執行。在計劃執行某些批處理任務的場合時,可能使用到,使其自己評估選擇系統空閒時執行。

周期性任務:

周期性任務有兩類:

系統類周期性任務:/etc/crontab

用戶類周期性任務:/var/spool/cron/USERNAME

系統cron的定義:

方法:

1、#vim /etc/crontab 此配置文件中添加計劃任務

2、#service crond restart 重啟crond服務,使剛添加的計劃任務生效

系統cron的配置文件/etc/crontab中7個字段的含義:

#cat/etc/crontab

# Example of job definition:

# .---------------- minute (0 - 59) #第一個字段,在第幾分鐘執行

# | .------------- hour (0 -23) #第二個字段

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name(第六個字段) command to be executed(第七字段)

用戶cron的定義:

方法:

#crontab -e [-u USERNAME]


此命令自動打開編輯器,即可新建任務、修改原有任務、刪除原有任務,然後保存即可。此命令編輯文件提供語法檢查功能,而通過vim並不會。類似visudo。

保存後的cron文件自動保存在 /var/spool/cron/USERNAME文件中,此文件中定義6個字段,意義同配置文件/etc/crontab中相同,只是去掉user-name段,即與系統cron相比,用戶cron無需指定用戶身份

crontab命令的選項:

-e:打開當前系統的默認文本編輯器,來定義用戶cron

-r: 移除配置文件,會刪除所有任務;

(若刪除某指定任務,crontab -e打開文件刪除對應行即可)

-l: 列出周期性任務

-u USERNAME:管理員以其他用戶身份定義crontab,並且會保存對應用戶名的目錄下

E.g. #crontab-e -u user1 (所以即可實現root用戶管理其他用戶的任務)

cron配置文件中時間點的段,指定時間時可使用如下通配符:

* :相應時間點的所有有效取值,即意為每

E.g. 3 4 * * * root cat /etc/fstab 每天4點3分以root用戶執行命令cat/etc/fstab

3 4 * * 5 root cat /etc/fstab 每周五4點3分執行(周和月,通常不同時使用)

, :離散取值

E.g. 3,18,33,48 * * * * root cat /etc/fstab

表示每小時的第3分鐘,18分鐘….,即每5分鐘執行1次

/ :定義指定取值范圍內的頻率

E.g. */3 * * * * root cat/etc/fstab 每3分鐘執行一次

17 */3 * * * root cat /etc/fstab 每3小時的第17分鐘執行一次,即實現每3小時執行一次- :連續取值:

E.g. 17 8-20/3 * * * root cat /etc/fstab 每天8點到20點每3小時執行一次

例:3 18 * * 2,5 每周執行2次(周二和周五)

2,328-18/3 * * 1-5 周一到周五,8點到18點每隔3小時,每半小時執行一次

72 */2 * * root tar -Jcf /backup/etc-`date '+%F'`.tar.xz /etc/* 每2天的凌晨2點7分執行備份一次/etc目錄

Linux中利用crontab創建計劃任務 http://www.linuxidc.com//Linux/2013-06/86401.htm

Linux中用crontab例行工作安排 http://www.linuxidc.com//Linux/2013-06/85441.htm

Linux crontab不執行問題排查 http://www.linuxidc.com//Linux/2013-06/85432.htm

Ubuntu使用crontab定時任務 http://www.linuxidc.com//Linux/2013-05/84770.htm

Linux計劃任務(at batch crontab anacron) http://www.linuxidc.com//Linux/2013-03/81584.htm

Copyright © Linux教程網 All Rights Reserved