- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我第一次运行 cron 作业。我正在使用 Amazon Ubuntu 14.04.2 LTS 在虚拟机中执行此操作。
这是我的crontab -e
的文件:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
*/1 * * * * root /usr/bin/php /var/www/html/testimages/script.php
好吧,这是我到目前为止尝试过的方法,我正在列一个 list ,这样任何可能对 cron 作业有问题的人都可以检查之前该做什么:
ubuntu
用户的 crontab 和 root
用户的 crontab。* * * * * root/usr/bin/php/var/www/html/testimages/script.php
* * * * * ubuntu/usr/bin/php/var/www/html/testimages/script.php
* * * * */usr/bin/php/var/www/html/testimages/script.php
* * * * * php/var/www/html/testimages/script.php
* * * * * "php/var/www/html/testimages/script.php"
*
替换为 */1
755
的权限设置为 script.php
script.php
上添加标题行:#!/usr/local/bin/php -q
当我输入 grep CRON/var/log/syslog
时,我可以看到:
Oct 27 15:32:01 ip-172-31-1-104 CRON[1184]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:33:01 ip-172-31-1-104 CRON[1520]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:34:01 ip-172-31-1-104 CRON[1849]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:35:01 ip-172-31-1-104 CRON[2188]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:36:01 ip-172-31-1-104 CRON[2513]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:37:01 ip-172-31-1-104 CRON[2840]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:38:01 ip-172-31-1-104 CRON[3165]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
Oct 27 15:39:01 ip-172-31-1-104 CRON[3494]: (root) CMD (root /usr/bin/php /var/www/html/testimages/script.php)
该脚本主要是执行代码并发送电子邮件,当我在命令行上键入 php/var/www/html/testimages/script.php
时效果很好,但我没有在 cron 中设置时获取该邮件。
我做错了什么?
非常感谢。
问候。
拉斐尔。
编辑:
这是我要运行的 php 文件
#!/usr/local/bin/php -q
<?php
echo '<script>!function(e){function t(e,t){var n=new Image,r=e.getAttribute("data-src");n.onload=function(){e.parent?e.parent.replaceChild(n,e):e.src=r,t?t():null},n.src=r}function n(t){var n=t.getBoundingClientRect();return n.top>=0&&n.left>=0&&n.top<=(e.innerHeight||document.documentElement.clientHeight)}for(var r=function(e,t){if(document.querySelectorAll)t=document.querySelectorAll(e);else{var n=document,r=n.styleSheets[0]||n.createStyleSheet();r.addRule(e,"f:b");for(var l=n.all,c=0,o=[],i=l.length;i>c;c++)l[c].currentStyle.f&&o.push(l[c]);r.removeRule(0),t=o}return t},l=function(t,n){e.addEventListener?this.addEventListener(t,n,!1):e.attachEvent?this.attachEvent("on"+t,n):this["on"+t]=n},c=new Array,o=r("img.lazy"),i=function(){for(var e=0;e<c.length;e++)n(c[e])&&t(c[e],function(){c.splice(e,e)})},u=0;u<o.length;u++)c.push(o[u]);i(),l("scroll",i)}(this);</script>'
echo '<style>table, th, td {border: 1px solid black; border-collapse: collapse;}th, td {padding: 15px;}th { text-align: left; background-color: #666666;}</style>';
require '/var/www/html/libraries/mail/PHPMailerAutoload.php';
require '/var/www/html/libraries/myLibrary/core.php';
$mail = new PHPMailer;
$to = "example@gmail.com";
ob_start();
function echoText($text) {
echo $text;
}
$show_json = $_GET['show_json'];
echoContent(); // belongs to the core
// send email
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.gmail.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'example@gmail.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('example@gmail.com', 'Watchdog - Rafael');
// $mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress($to);
// $mail->addReplyTo('info@example.com', 'Information');
// $mail->addBCC('bcc@example.com');
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Test on database';
$contents = ob_get_contents();
$mail->Body = $contents;
// $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
print_r(error_get_last());
}
?>
编辑:我正在尝试设置一个 bash 脚本来运行它,甚至将结果导出到一个 log.txt ...... log.txt
是空的。
最佳答案
您的问题出在您的 php 脚本的第 1 行 - 缺少终止符;
您发布的 CRON 系统日志显示运行脚本的 cron。您收到的电子邮件很可能来自 CRON 而不是您的脚本。不幸的是,您的脚本的工作是发送电子邮件,但是,您的脚本不会发送给本地用户“ubuntu”。
如果您要阅读那些邮件(您应该阅读!),您可能会发现错误。
脚本要么有错误,要么没有,要么运行,要么不运行。根据您对 php(-cli).ini 的配置,您很可能没有收到任何错误报告,因此您认为脚本是正确的。语法就是语法。
没有所谓的“最小错误”。如果你侥幸逃脱,我们称之为“功能”;)
关于php - 运行一个 cron 作业。我所有的测试和尝试都失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372352/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!