我试图运行一个简单的crontab(在mac OSX终端上)
我的cronjob事情看起来像这样:
* * * * * /Users/tanavya.dimri/Documents/cron.sh
cron.sh:
#!/bin/bash
cd /Users/tanavya.dimri/Documents
python hello.py > empty
hello.py只是
print "Hello"
当我运行sh cron.sh
时,它有效。 Empty,这只是一个空文本文件,确实被更改为" Hello"。
但是,我真的不知道它是否正在使用crontab,因为从我删除hello后文件没有改变。
答案 0 :(得分:0)
删除文件后尝试。如果crontab运行,它应该创建它
有一种方法可以检查您的crontab作业是否成功运行。请注意,cron命令中的日志文件引用是使用完整路径而不是相对路径给出的。您需要确保脚本使用完整路径或cd到正确的工作目录。
Crontab Log: How to Log the Output of My Cron Script
我们假设您已将backup.sh添加到您的crontab中,如图所示 下面每天午夜执行。
$ crontab -e 59 23 * * * /home/john/bin/backup.sh
要验证此作业是否成功执行,请检查 / var / log / cron文件,其中包含有关所有cron的信息 在您的系统中执行的作业。如您所见 输出,约翰的cron工作成功执行。
$ tail /var/log/cron
Oct 8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &)
Oct 8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &)
Oct 8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)
Cron日志包含以下信息:
时间戳 - 执行cron作业的日期和时间
主机名 - 服务器的主机名(例如,dev-db)
cron deamon名称和PID。例如,crond [20399]
用户名 - 执行此cron作业的用户名。对于 例如,约翰。
CMD - 此后的任何内容都是执行的真实命令 那个时候。
如果backup.sh中有任何echo语句,您可能需要 将这些记录到文件中。一般来说,如果是backup.sh的cron脚本 抛出任何输出(包括错误),您可能希望将它们记录到a 日志文件。为此,请修改crontab条目并添加输出和 错误重定向如下所示。
$ crontab -e 59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1
在上面:
/home/john/logs/backup.log表示标准输出 backup.sh脚本将被重定向到backup.log文件。
2>& 1表示标准错误(2>)被重定向到相同的错误 标准输出(& 1)指向的文件描述符。
因此,标准输出和错误都将重定向到 /home/john/logs/backup.log
答案 1 :(得分:0)
首先检查您的cron.sh文件是否具有足够的权限。
<?php
// check if value was posted
if($_POST){
// get database connection
$database = new Database();
$db = $database->getConnection();
// prepare product object
$product = new Product($db);
// set product id to be deleted
$product->id = $_POST['object_id'];
// delete the product
if($product->delete()){
echo "Object was deleted.";
}
// if unable to delete the product
else{
echo "Unable to delete object.";
}
}
?>
然后修改你的crontab以定期运行(即1分钟):
chmod 755 cron.sh
答案 2 :(得分:0)
默认情况下,cronjobs已登录/var/log/syslog
所以你可以简单地gre一下日志CRON并检查你的工作执行情况:
grep CRON /var/log/syslog