name引數: 計劃任務名稱
job引數:指定計劃的任務中需要實際執行的命令或者指令碼
user引數:指定計劃任務屬於哪個使用者,預設是root使用者
disabled引數: 當計劃任務有名稱時,根據計劃任務名稱關閉(註釋)對應的計劃任務
minute引數:設定計劃任務中分鐘設定位的值,取值範圍(0-59,*, */2)
hour引數:設定計劃任務中小時設定位的值,取值範圍(0-23,*,*/2)
day引數:設定計劃任務中天(日)設定位的值,取值範圍(1-31,*,*/2)
month引數:設定計劃任務中月份設定位的值,取值範圍(1-12,*,*/2)
weekday引數:設定計劃任務中周幾設定位的值,取值範圍(0-6 for Sunday-Saturday, *)
例1:建立名稱為ntpdate的計劃任務,每天凌晨1點5分同步時間
[root@localhost ~]# ansible 192.168.233.167 -m cron -a "name='ntpdate' minute=5 hour=1 job='ntpdate ntp.aliyun.com'"192.168.233.167 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": true, "envs": [], "jobs": [ "ntpdate" ]}
檢視一下新增後效果
[root@localhost ~]# ansible 192.168.233.167 -m shell -a "crontab -l"192.168.233.167 | CHANGED | rc=0 >>#Ansible: ntpdate5 1 * * * ntpdate ntp.aliyun.com
已經新增成功
例2:把剛才建立的計劃給關閉掉
[root@localhost ~]# ansible 192.168.233.167 -m cron -a "name='ntpdate' minute=5 hour=1 job='ntpdate ntp.aliyun.com' disabled=yes"192.168.233.167 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "changed": true, "envs": [], "jobs": [ "ntpdate" ]}
檢視一下結果
[root@localhost ~]# ansible 192.168.233.167 -m shell -a "crontab -l"192.168.233.167 | CHANGED | rc=0 >>#Ansible: ntpdate#5 1 * * * ntpdate ntp.aliyun.com
已經被註釋掉了
注意:如果使用disabled引數沒有設定時間引數,或時間引數設定錯誤時,計劃任務會被註釋掉的同時,時間也會被修改,如下:
[root@localhost ~]# ansible 192.168.233.167 -m shell -a "crontab -l"192.168.233.167 | CHANGED | rc=0 >>#Ansible: ntpdate#* * * * * ntpdate ntp.aliyun.com
可以看到,時間全部變為 "*"了
[root@localhost ~]# ansible 192.168.233.167 -m cron -a "name='ntpdate' state=absent backup=yes"192.168.233.167 | CHANGED => { "ansible_facts": { "discovered_interpreter_python": "/usr/bin/python" }, "backup_file": "/tmp/crontabRvJZBw", "changed": true, "envs": [], "jobs": []}
顯示已經把名稱為"ntpdate"的計劃任務儲存到/tmp/crontabRvJZBw
我們先用 "crontab -l" 檢視一下計劃任務
[root@localhost ~]# ansible 192.168.233.167 -m shell -a "crontab -l"192.168.233.167 | CHANGED | rc=0 >>
顯示為空,說明計劃任務已經被刪除了。
我們再看一下備份檔案
[root@localhost ~]# ansible 192.168.233.167 -m shell -a "cat /tmp/crontabRvJZBw"192.168.233.167 | CHANGED | rc=0 >>#Ansible: ntpdate5 1 * * * ntpdate ntp.aliyun.com
確實是我們在例1中建立的計劃任務
還有一個引數這裡提一下special_time引數。
special_time引數:
計劃任務的時間設定格式為@reboot或者@hourly,@reboot表示重啟時執行,@hourly表示每小時執行一次,相當於設定成"0 * * * *" ,這種@開頭的時間設定格式則需要使用special_time引數進行設定.
special_time引數的可用值有:
reboot 重啟後
yearly 每年
annually 每年,與yearly相同
monthly 每月
weekly 每週
daily 每天
hourly 每時