Linux定时任务

基本语法:

  • crontab -l(查看)
  • crontab -e(编辑)
  • crontab -r(删除)

 

格式:

* * * * *     脚本命令

五颗星依次代表分、时、日、月、星期几

*代表通配所有的,最低设定时间为每分钟执行一次。

 

举个栗子:

每小时的第1分钟执行: 1   *   *   *   *    echo 1    >    dingshi.txt

每分钟执行一次         :*/1  *   *   *   *    echo 1    >    dingshi.txt

 

应用:每天2点半执行备份数据库php的命令,

  1. crontab -e 进入编辑
  2. 30  2  *  *  *   /usr/local/mysql/bin/mysqldump   -uroot   -proot  --database testdb >  /root/testdb.sql
  3. 保存退出

 

应用:每一分钟执行某php脚本修改数据表

mysql> create table times(id int auto_increment primary key,time v archar(255));

mysql> select * from php.times;
+----+------------+
|   id  |     time       |
+----+------------+

1/在项目目录下创建一个dingshiqi.php文件

mysql_connect('127.0.0.1','root','root');
mysql_query('use php');
$sql = "insert into times values(null,".time().")";

mysql_query($sql);

2/crontab -e 进入编辑

*/1 * * * *  /usr/local/php/bin/php  /home/wwwroot/default/dingshiqi.php

3/保存退出

mysql> select * from times;
+----+------------+
| id    |  time          |
+----+------------+
|  1 | 1528525358 |
|  2 | 1528525779 |
|  3 | 1528525828 |

注意:

设置php全局变量:ln -s  /usr/local/php/bin/php   /bin/php

这样php执行脚本直接  php 脚本

定时任务最好备份,如果不小心执行了crontab -r命令,查看/var/log/cron定时日志。

查看crontab命令帮助 man crontab

 

严谨的定时执行php脚本

1/cron.php 

#!/usr/bin/env php
<?php
//开头为定义php的执行环境、目的是兼容操作系统和让程序具有可扩展
echo 'task'.time()."\n";

放入某文件夹 crontab

chown -R www:www /home/crontab //一般安全性考虑不使用root用户,指定用户执行

chmod -R 744 /home/crontab //修改文件的权限

2/用www用户配置定时任务

$> crontab -u www -e

*/ * * * * /usr/local/php/bin/php  /home/cron.php  > /dev/null                   //>/dev/null没有输出

*/ * * * * /usr/local/php/bin/php  /home/cron.php  > /home/demo.log       //输出到日志文件

1)注意以www用户来执行时,log文件也需要改为www用户,并开启写与执行权限

2)一般不会这样输出,而是php代码记录日志(记录成功或者php脚本报错的信息等)

3/查看定时任务

crontab -l 默认root用户查看,一般用自己设定的用户来查看,crontab -u www -l

4/查看用户的定时任务配置文件

/var/spool/cron/用户名

修改任务时可以编辑这个文件

5/监测demo.log

$> tail -10 /home/demo.log

6/修改删除任务

crontab -u www -e //编辑

删除即可,/var/spool/cron/www 文件会自动改变

7/重启crontab

一般添加后自动生效 不需要重启

服务重启 sevice crond restart

/etc/init,d/。。  重启

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值