cron 模塊可以幫助我們管理遠程主機中的計劃任務,功能相當于 crontab 命令。
## 1、選項
### minute參數:
此參數用于設置計劃任務中分鐘設定位的值,比如,上述示例1中分鐘設定位的值為5,即 minute=5,當不使用此參數時,分鐘設定位的值默認為”*”。
### hour參數:
此參數用于設置計劃任務中小時設定位的值,比如,上述示例1中小時設定位的值為1,即 hour=1,當不使用此參數時,小時設定位的值默認為”*”。
### day參數:
此參數用于設置計劃任務中日設定位的值,當不使用此參數時,日設定位的值默認為”*”。
### month參數:
此參數用于設置計劃任務中月設定位的值,當不使用此參數時,月設定位的值默認為”*”。
### weekday參數:
此參數用于設置計劃任務中周幾設定位的值,當不使用此參數時,周幾設定位的值默認為”*”。
### special_time參數:
在上述示例3與示例4中,計劃任務的時間設定格式為 @reboot 或者@hourly。@reboot 表示重啟時執行,@hourly 表示每小時執行一次,相當于設置成”0 0 * * *” ,這種@開頭的時間設定格式則需要使用 special_time 參數進行設置,special_time 參數的可用值有 reboot(重啟后)、yearly(每年)、annually(每年,與yearly相同)、monthly(每月)、weekly(每周)、daily(每天)、hourly(每時)。
注意:當上述時間單位設定參數都未指定時,計劃任務的時間設定默認會被設定為”* * * * *”,這樣表示每秒都會執行一次計劃任務,所以,在使用cron模塊時,我們應該確定對應的時間參數設置正確。
#### user參數:
此參數用于設置當前計劃任務屬于哪個用戶,當不使用此參數時,默認為管理員用戶。
### job參數:
此參數用于指定計劃的任務中需要實際執行的命令或者腳本,比如上例中的 “echo test” 命令。
### name參數:
此參數用于設置計劃任務的名稱,計劃任務的名稱會在注釋中顯示,當不指定計劃任務的名稱時,ansible 會默認為計劃任務加入注釋,注釋的內容為 #Ansible: None,假設指定計劃任務的名稱為 test,那么注釋的內容為#Ansible: test,在一臺機器中,計劃任務的名稱應該具有唯一性,方便我們以后根據名稱修改或刪除計劃任務。
### state參數:
當計劃任務有名稱時,我們可以根據名稱修改或刪除對應的任務,當刪除計劃任務時,需要將 state 的值設置為 absent。
### disabled參數:
當計劃任務有名稱時,我們可以根據名稱使對應的任務”失效”(注釋掉對應的任務)。注意,使用此參數時,除了需要指定任務的名稱,還需要同時指定任務的job 以及任務的時間設定,而且任務的時間設定必須和對應任務完全相同,否則在注釋任務的同時,任務的時間設定會被修改,除非你確定這樣做。
### backup參數:
如果此參數的值設置為 yes,那么當修改或者刪除對應的計劃任務時,會先對計劃任務進行備份,然后再對計劃任務進行修改或者刪除,cron 模塊會在遠程主機的 /tmp 目錄下創建備份文件,以 crontab 開頭并且隨機加入一些字符,具體的備份文件名稱會在返回信息的 backup_file 字段中看到,推薦將此此參數設置為 yes。
## 2、實例
1.在 ansible-demo3 主機上創建計劃任務,任務名稱為”crontab test”,任務于每天1點5分執行,任務內容為輸出test字符。
```
[root@ansible-manager ~]# ansible ansible-demo3 -m cron -a " name='crontab test' minute=5 hour=1 job='echo test' "
ansible-demo3 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"crontab test"
]
}
```
2.在 ansible-demo3 主機上創建計劃任務,任務名稱為”crontab day test”,任務每3天執行一次,于執行當天的1點1分開始執行,任務內容為輸出 test 字符。
```
[root@ansible-manager ~]# ansible ansible-demo3 -m cron -a " name='crontab day test' minute=1 hour=1 day=*/3 job='echo test' "
ansible-demo3 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"crontab test",
"crontab day test"
]
}
```
3.在 ansible-demo3 主機上創建計劃任務,任務名稱為”special time test”,任務將在重啟時執行,任務內容為輸出 test 字符。
```
[root@ansible-manager ~]# ansible ansible-demo3 -m cron -a " name='special time test' special_time=reboot job='echo test' "
ansible-demo3 | SUCCESS => {
"changed": true,
"envs": [],
"jobs": [
"crontab test",
"crontab day test",
"special time test"
]
}
```
- Linux
- 高級
- 殺毒
- 記一次中毒事件
- clamav查毒軟件
- 處理挖礦病毒
- 定時任務
- kill
- chattr文件保護
- 運行級別
- Linux啟動
- 文件加密
- ssh免密登錄
- .ssh
- 問題
- 腳本
- 阿里云域名解析
- yum源
- 時間同步
- keepalived實現高可用
- dos字符與unix字符
- 大文件上傳
- 基礎
- proc目錄
- 設置宋體
- 基礎命令_01
- 基礎命令_02
- SELinux
- 文件描述符
- 基礎命令_03
- awk
- 系統日志
- date命令
- bc命令
- lsof
- vim快捷鍵
- shell
- 循環控制
- expr
- 執行腳本的方式
- declare
- shell腳本
- 控制啟停腳本
- 數值計算
- centos
- 配置網絡
- 環境
- 灰度環境
- ansible
- 模塊
- 語法
- file模塊
- setup模塊
- ping模塊
- copy模塊
- command模塊
- shell模塊
- service模塊
- cron模塊
- yum模塊
- user 模塊
- group模塊
- 指定用戶
- playbook
- 實例
- ansible安裝
- Jenkins
- shell部署
- 導入已有項目的配置
- 執行shell
- tungsten數據同步
- 防火墻
- netfilter