crontab使用日誌

Cron 是 Linux 的內置服務php

查看服務狀態
[vagrant@vagrant-c5-x86_64 ~]$ /sbin/service crond status
crond (pid  2168) 正在運行...
關閉服務
[vagrant@vagrant-c5-x86_64 ~]$ sudo /sbin/service crond stop
中止 crond:                                               [肯定]
啓動服務
[vagrant@vagrant-c5-x86_64 ~]$ sudo /sbin/service crond start
啓動 crond:                                               [肯定]
重啓服務
[vagrant@vagrant-c5-x86_64 ~]$ sudo /sbin/service crond restart
中止 crond:                                               [肯定]
啓動 crond:                                               [肯定]
從新載入配置
[vagrant@vagrant-c5-x86_64 ~]$ sudo /sbin/service crond reload
從新載入 cron 守護進程配置:                               [肯定]
添加爲系統自啓動
/sbin/service crond start
使用設定
編輯某個用戶的 cron 服務
[vagrant@vagrant-c5-x86_64 ~]$ crontab -e

0 */1 * * * /usr/local/php/bin/php yingyongbao_push.php -t push_strategy
查詢某個用戶 cron 服務詳細內容
[vagrant@vagrant-c5-x86_64 ~]$ crontab -l
0 */1 * * * /usr/local/php/bin/php yingyongbao_push.php -t push_strategy
設定某個用戶的 cron 服務 [通常root用戶在執行這個命令的時候須要此參數]
  • eg. root 查看本身的 cron 設置
[vagrant@vagrant-c5-x86_64 ~]$ sudo crontab -u root -l
no crontab for root
  • eg. root 刪除 vagrant 的 cron 設置
[vagrant@vagrant-c5-x86_64 ~]$ sudo crontab -u vagrant -r
刪除某個用戶的 cron 服務
[vagrant@vagrant-c5-x86_64 ~]$ crontab -e
no crontab for vagrant - using an empty one
crontab: installing new crontab
[vagrant@vagrant-c5-x86_64 ~]$ crontab -l
0 */1 * * * /usr/local/php/bin/php yingyongbao_push.php -t push_strategy
[vagrant@vagrant-c5-x86_64 ~]$ crontab -r
[vagrant@vagrant-c5-x86_64 ~]$ crontab -l
no crontab for vagrant
語法
usage:    crontab [-u user] file
    crontab [-u user] [ -e | -l | -r ]
        (default operation is replace, per 1003.2)
    -e    (edit user's crontab)
    -l    (list user's crontab)
    -r    (delete user's crontab)
    -i    (prompt before deleting user's crontab)
    -s    (selinux context)
幫助
[vagrant@vagrant-c5-x86_64 ~]$ man crontab

基本格式

  • 列[各個字段之間用spaces和tabs分割]
第1列 表示分鐘 1~59 每分鐘用 * 或者 */1 表示
第2列 表示小時 1~23(0表示0點)
第3列 表示日期 1~31
第4列 表示月份 1~12
第5列 標識號星期 0~6(0表示星期天)
第6列 要運行的命令
  • 特殊符號linux

    *: 表示任什麼時候刻
     ,: 表示分割
     -: 表示時間段,如1-5,表示1-5點
     /n: 表示每一個n的單位執行一次,如 */1,表示每隔一個小時執行一次,等效於 1-23/1
    -1: 包含全部合法值,在月份域上使用 -1 意味着每一個月都會觸發這個 trigger
  • 例子
#每晚的21:30
30 21 * * * xxxx

#天天早上6點10分
10 6 * * * date

#每兩個小時
0 */2 * * * date


#每個月 一、十、22日早上4點45分
45 4 1,10,22 * * xxx

#每週日,週二,週三的 17:00和 17:10 執行
0,10 17 * * 0,2,3 

#每隔10分 執行
0,10,20,30,40,50 * * * * 
*/10 * * * * 

#8:02,11:02,14:02,17:02,20:02 執行
2 8-20/3 * * *

/etc/crontab 文件

存放系統運行的調度程序bash

[vagrant@vagrant-c5-x86_64 etc]$ cat /etc/crontab
SHELL=/bin/bash
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

/etc/cron.deny && /etc/cron.allow

/etc/cron.deny 表示不能使用 crontab 命令的用戶
/etc/cron.allow 表示能使用crontab的用戶
若是兩個文件同時存在,那麼 /etc/cron.allow 優先
若是兩個文件都不存在,那麼只有超級用戶能夠安排做業

每一個用戶會在 /var/spool/cron 目錄下 產生一個本身的 crontab 文件

[root@vagrant-c5-x86_64 vagrant]# cd /var/spool/cron/
[root@vagrant-c5-x86_64 cron]# ls
vagrant
[root@vagrant-c5-x86_64 cron]# cat vagrant
0 */1 * * * /usr/local/php/bin/php yingyongbao_push.php -t push_strategy
相關文章
相關標籤/搜索