首先php可以写linux的shell脚本,是非常快捷方便的,也展现了php的强大。
(1)讲解头部的一些开头文件代表什么意思。
eg
#!/usr/bin/env php
#!/usr/bin/php
哎,看了网上的一些说法,说只要平常写#!/usr/bin/env php就可以了,我也尝试了好多次,不成功,不得其原因,于是自己去琢磨了一下。
大概的意思是指的php的编译路径,但是也不要说#!/usr/bin/env php就可以了,毕竟大家安装的php路径是不一样的,容易把人带到沟里面,也别说什么有通用的写法。
简单,想要知道自己php的编译路径只需要执行一下linux命令:whereis php即可。
OK,下面就开始写一个简单的shell脚本:my_php_shell.sh
#!/usr/local/bin/php
<?php
date_default_timezone_set('Asia/shanghai');
try{
echo "ok--".date('Y-m-d H:i:s')."\n";
}catch(Exception $e){
echo "ok--".$e->getMessage()."\n";
}
?>
直接输出一个日期字符串。
下面接着配置crontab,其中有一些要注意的地方。
(1)执行crontab -e如果是第一次的话,会让你选择编辑crontab的方式
我比较习惯vim,我选择了 3。
有的人会说我选错了怎么办,能重新选择吗,可以的执行select-editor命令就能重新设置编辑器了。
选择完毕之后执行:crontab -e就可以编辑crontab了。
*/1 * * * * /usr/local/nginx/html/my_php_shell.sh >> /usr/local/nginx/html/shell_log.txt
这是我的一个crontab,:wq保存退出,然后sudo service cron restart重启。定时任务就开始执行了。
执行结果,每分钟执行一次脚本:
可能遇到的问题,crontab没有正常运行,如何查看日志,OK这个是必须的。
首先要打开crontab的日志:
sudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log #将cron前面的注释符去掉
sudo service rsyslog restart //重启日志服务
tail -f /var/log/cron.log //查看日志
这样就开启了crontab的日志,如果出现crontab运行不正常的状态,就可以去查看日志信息了。
日志内容: