美文网首页
linux使用crontab在项目下执行定时脚本笔记!

linux使用crontab在项目下执行定时脚本笔记!

作者: DragonersLi | 来源:发表于2019-10-13 22:06 被阅读0次
crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/ 目录下存放的是每个用户包括rootcrontab任务,每个任务以创建者的名字命名cd /var/spool/cron/进入cron目录执行cat查看任务
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
我们还可以把脚本放在/etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab [-u username]    (省略用户表表示操作当前用户的crontab)
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

cat /var/log/cron 查看日志
service crond status查看状态
service crond restart 重启动
service crond start 开始
service crond stop 停止
service crond reload 重新加载
如该命令无法重启,请用systemctl restart crond
aliyun执行: /bin/systemctl restart crond.service

image.png
crontab知识的补充
minute hour day month week command
分   时   日   月   周 命令

*   *     *    *    *   *
 
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

记住几个特殊符号的含义: 
“*”代表取值范围内的数字, 
“/”代表”每”, 
“-”代表从某个数字到某个数字, 
“,”分开几个离散的数字 
其中:

minute: 表示分钟,可以是从0到59之间的任何整数。 
hour:表示小时,可以是从0到23之间的任何整数。 
day:表示日期,可以是从1到31之间的任何整数。 
month:表示月份,可以是从1到12之间的任何整数。 
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
 

实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2  *  * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart

用户级执行定时脚本:

1.thinkphp项目根目录paijinhua下创建crontab.sh文件,内容如下:

#!bin/bash
cd /home/wwwroot/paijinhua
//执行定时脚本
//php位置  think位置  命令名称 
/usr/bin/php /home/wwwroot/paijinhua/think app:demo
sleep 10; /usr/bin/php /home/wwwroot/paijinhua/think app:demo
sleep 20; /usr/bin/php /home/wwwroot/paijinhua/think app:demo
sleep 30; /usr/bin/php /home/wwwroot/paijinhua/think app:demo
sleep 40; /usr/bin/php /home/wwwroot/paijinhua/think app:demo
sleep 50; /usr/bin/php /home/wwwroot/paijinhua/think app:demo

crontab -e创建任务,写入内容如下:

*/1 * * * * root /usr/local/php/bin/php /home/wwwroot/paijinhua/think app:demo  >> /home/wwwroot/paijinhua/crontab.log  2>&1

/bin/systemctl start crontab.servicealiyun执行任务,每次重启nginx或者apache服务要重新开启

系统级执行定时脚本:

image.png

vim /etc/crontab 追加如下内容:
每分钟执行一次写入当前时间命令,并写入日志
* * * * * root /usr/local/php/bin/php /home/wwwroot/paijinhua/think app:demo >> /home/wwwroot/paijinhua/crontab.log 2>&1
每隔10分钟更新一次数据
*/10 * * * * root /usr/local/php/bin/php /home/wwwroot/paijinhua/think score >> /home/wwwroot/paijinhua/crontab.log 2>&1
每天19:00执行同步数据
0 19 * * * root /usr/local/php/bin/php /home/wwwroot/paijinhua/think rong >> /home/wwwroot/paijinhua/crontab.log 2>&1
只要服务器开启就会自动执行
tail -f crontab.log查看定时脚本执行log ,ctrl + c取消查看

image.png
以上是crontab定时调用thinkphp下command命令脚本;
如果是控制器下某个方法,可以直接执行tp的入口文件,后面带上模块/控制器/方法

/usr/local/php/bin/php /home/wwwroot/paijinhua/index.php home/test/index

相关文章

  • linux使用crontab在项目下执行定时脚本笔记!

    crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内...

  • linux 任务定制及环境配置

    关键词:linux python脚本 定时执行 通过crontab调度脚本时脚本使用的环境变量与直接在shell中...

  • PHP定时脚本

    PHP的定时脚本其实就是使用crontab定时命令来执行PHPcrontab -e:打开定时脚本文件,编辑定时脚本...

  • crontab的基本使用

    作用 crontab是linux的一项系统服务。用来在linux上面定时执行任务。crontab服务又分为系统任务...

  • 定时任务错误总结1

    Linux下定时脚本执行问题定时脚本(crontab)如果遇到设定后不生效的问题,排查问题思路如下:(1)查看脚本...

  • linux定时任务crontab

    利用linux的定时任务crontab来执行脚本,在centos7版本下运行 1、安装crontab yum in...

  • 使用crontab时报错ImportError: No modu

    当我使用crontab定时执行Python脚本时报错:ImportError: No module named '...

  • linux Crontab

    Linux Crontab:Linux中用于执行定时任务的工具crontab -e:编辑定时任务crontab -...

  • linux 定时任务实战

    本文将以实例学习,如何在 linux 中定时执行脚本任务。 添加定时任务 执行命令: crontab -e 进入编...

  • crontab环境变量读取

    问题 前期使用crontab定时执行bash shell脚本时,都通过在shell一开始生效环境变量来避免脚本执行...

网友评论

      本文标题:linux使用crontab在项目下执行定时脚本笔记!

      本文链接:https://www.haomeiwen.com/subject/miwhmctx.html