crontabcrontab 定时执行php脚步时没反应

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!查看: 5427|回复: 6
注册时间最后登录阅读权限10积分17精华0帖子
新手上路, 积分 17, 距离下一级还需 33 积分
可能是由于两者环境的不一样,定时crontab中python脚本不能执行,而在本地shell中是可以执行的。比如本地python3 xx.py,但是crontab中* * * * * /usr/bin/python3.2 /home/pi/xx.py 就不能执行,求解
注册时间最后登录阅读权限90积分4645精华0帖子
论坛元老, 积分 4645, 距离下一级还需 9995354 积分
很高兴有人在PI的版面问关于python的问题,虽然我不知道如何回答,但是也很有兴趣
NXP lpc810
注册时间最后登录阅读权限20积分145精华0帖子
注册会员, 积分 145, 距离下一级还需 55 积分
先記錄一下,今晚回去我也試一下:)
注册时间最后登录阅读权限20积分169精华0帖子
注册会员, 积分 169, 距离下一级还需 31 积分
本帖最后由 eddybbs 于
21:52 编辑
* * * * *&&sudo python /home/pi/xx.py
注册时间最后登录阅读权限30积分336精华0帖子
中级会员, 积分 336, 距离下一级还需 164 积分
是不是依赖某些环境变量,linux 里的 cron 只有几个基本的环境变量。
* * * * * source ~/.bashrc && /usr/bin/python3.2 /home/pi/xx.py
注册时间最后登录阅读权限10积分17精华0帖子
新手上路, 积分 17, 距离下一级还需 33 积分
谢谢回答,问题已解决,注意的一点是,python中任何打开操作一定要是绝对地址,否则进入cron的环境就找不到了。。。
注册时间最后登录阅读权限10积分17精华0帖子
新手上路, 积分 17, 距离下一级还需 33 积分
cron不支持现有用户的环境变量
Powered byluckcy 的BLOG
用户名:luckcy
文章数:158
评论数:78
访问量:1172340
注册日期:
阅读量:24883
阅读量:261943
阅读量:999492
阅读量:149472
51CTO推荐博文
什么是Cron和Crontab
Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本。更详细的概念和使用方法介绍请点击Cron和Crontab是什么?
现在我们要讨论的是,许多的php程序员都可以很快完成Web应用的开发,PHP代码的调试也比PERL或C语言容易很多,不过经常会碰到有php程序员会问:如何在linux系统中使用crontab来运行Php脚本?比如ubuntu crontab 定时执行php代码。
Ubuntu 如何使用Crontab定时自动执行PHP脚本
现在远方博客也碰到了需要在指定的时间运行php脚本的情况,比如定时进行网站的数据统计、自动执行数据库备份任务、定时发送email等等。
如果我们不使用Cron来执行php脚本,或许我们会采用php include的方法。比如在index.php 中添加代码:&?php include &crontab.php&?&。当访客通过浏览器访问的时候,自动执行了crontab.php。当然这只是一种思路,这种方法并不能指定时间定时运行PHP脚本,同时也给index.php带来了额外的服务器消耗。而Linux Ubuntu Crontab 可以很好地完成php 定时任务,这也是写这篇关于cron的文章的目的。
然后首先想到的是和windows 系统下的计划任务一样,通过在windows中使用php的命令行模式执行计划任务实现定时自动执行php脚本,这是一个思路,另外一个思路就是直接在浏览器中访问php脚本的地址,定时自动打开浏览器访问该网址,执行php脚本。因此在Ubuntu服务器系统下,同样有类似的两种思路。下面逐步介绍使用Ubuntu Crontab定时执行PHP脚本的设置方法。
PHP 安装模式
首先我们必须先确认自己在LINUX Ubuntu 服务器上php的安装模式,以CGI 模块还是Apache模块方式安装? 如果不确定php安装模式,可以使用 phpinfo() 函数查看:将&?php phpinfo(); ?& 写在php文件中上传到网站服务器,访问该页面,就在页面顶部我们找到&Server API&,如果类似&Apache 2.0 Handler&,那么就是apache模块;否则php是CGI 模式(shell 命令行模式)。这两种不同的php安装模式,正对应于前面介绍的ubuntu crontab 定时执行php的两种解决方法。
如果Server API是cgi,那么在需要cron执行的php脚本的第一行额外加入一段代码#!/usr/bin/php -q(类似PERL语法),指定服务器中php可执行程序的位置,具体步骤如下:
1. 确认Ubuntu系统已经安装了php5-cli模块,安装命令:apt-get install php5-cli。在目录 /usr/bin/php下生成 php可执行程序。
2.& 编辑待定时执行的php脚本文件crontab.php,如:
#!/usr/bin/php -q
$file = &/var/www/&.date(&H&).&_&.date(&i&).&_&.date(&s&).&.txt&;
file_put_contents($file,date(&Y-m-d&));
3.& 编辑 crontab 任务:
打开终端,输入命令:crontab -e,
Select an editor.& To change later, run &select-editor&.
1. /bin/ed
2. /bin/nano&&&&&&& &&- easiest
3. /usr/bin/vim.tiny
选择一个Ubuntu编辑器后,编辑/tmp/crontab.AuN7IQ/crontab 文件:
# m h& dom mon dow&& command
在下面添加定时执行命令:
* * * * * php /path/to/your/cron.php
5个星号分别代表定时指定每分、小时、日、月、周。如每天的下午7点执行crontab.php,命令为:
* 19 * * * php /var/www/cron/crontab.php
然后按Ctrl+O保存,Ctrl+X退出。
4. 执行以下Crontab命令行
Shell& crontab crontab
确认crontab.php的权限为可执行(&chmod 755 /var/www/cron/crontab.php&)。
Apache 模块
如果php安装是以 apache 模式运行的,那么在要在ubuntu服务器定时执行的php脚本开头就不用加 #!/usr/bin/php& -q 这一行。php脚本在ubuntu 通过crontab的定时执行通过Lynx浏览器的自动访问来完成。
1.& Lynx浏览器安装。
Lynx浏览器是一款轻便的web浏览器,使用于大部分Unix 和Linux系统环境。安装命令:sudo apt-get install lynx。
2. 编辑cron任务,命令crontab -e
* * * * * lynx -dump
注意这个地址最好用绝对地址,包含&http://&的完整url。
3. 再次执行下面的命令行:
Shell& crontab crontab
因为我在ubuntu安装的是lamp server,所以采用第二种Apache 模块的方法就可以使用crontab定时执行php脚本代码。
了这篇文章
类别:┆阅读(0)┆评论(0)}

我要回帖

更多关于 crontab定时执行脚本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信