linux下crontab定时器的使用说明

2022年05月22日 阅读112次 分类:开发 标签:phpyii2经验

版权声明:本文为博主原创或转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:http://www.zhuyanjun.cn/development/1890.html

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

cron 服务的启动与关闭

# 查看cond 状态
service cron status
# 启动cron
service cron start
# 关闭cron
service cron stop
# 重启cron
service cron restart

crontab 文件格式

基本格式 :
*  *  *  *  *  command
分  时  日  月  周  待执行命令

分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天) 

  • 第1列表示分钟1~59 每分钟用*或者 */1表示

  • 第2列表示小时1~23(0表示0点)

  • 第3列表示日期1~31

  • 第4列表示月份1~12

  • 第5列标识号星期0~6(0表示星期天)

  • 第6列要运行的命令

生成工具

https://tool.lu/crontab/

使用示例

linux命令行,输入命令

crontab -e;

回车后会打开vim编辑器(这个编辑器是命令行中编辑),输入以下命令

# 每晚21:30重启apache
30 21 * * *  service httpd restart

# 每月的1, 10, 22日的4:55分重启apache, 用,号分割
55 4 1,10,22 * * service httpd restart

# 每月的1到10日重启apache, 用-号表示区间
* * 1-10 * * service httpd restart

# 每隔2分钟重启apache , 这里的 */2 号 表示从0.0秒开始每隔2分钟执行
*/2 * * * * service httpd restart

# 每晚11点到早上7点每隔1小时重启服务器, 注意分钟是用0而不是* 假如是*则代表每分钟都在执行
0 23-7/1 * * * service httpd restart

# 每天18点到23点每隔30分钟重启服务器, 两种写法都可以
*/30 18-23 * * * service httpd restart
0,30 18-23 * * * service httpd restart

精确到秒

crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。

以下方法将每20秒执行一次

crontab -e 
* * * * * /bin/date
* * * * * sleep 20; /bin/date 
* * * * * sleep 40; /bin/date

说明:需要将/bin/date更换成你的命令即可

这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录

Yii下使用定时器功能

按照以下步骤进行

  • 在Yii项目根目录找到并打开“console/controllers/”文件夹。

  • 新建“TimingController”并继承“yii\console\Controller”。

  • 创建一个actionTest。
    <?php
    namespace console\controllers;
    use yii\console\Controller;
     
    class TimingController extends Controller
    {
        public function actionTest()
        {
            file_put_contents('/var/www/mySite/uploads/'.date('His',time()).'.txt',time()); // 要保证uploads文件的可写权限
        }
    }
  • 打开linux命令行,输入命令“crontab -e;”,回车后会打开vim编辑器(这个编辑器是命令行中编辑)。

  • 输入 “* * * * * php /var/www/BeckSports/yii timing/test”(不用分号结尾)。

  • 保存退出vim编辑器(具体看编辑器操作)。

  • 输入命令“service cron restart”重启cron服务。

关联文章

(本篇完)

是不是学到了很多?可以

版权声明:本文为博主原创或转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:http://www.zhuyanjun.cn/development/1890.html