如何设置crontab来执行mysql查询并记录输出?

Luc*_*tos 4 mysql crontab

好吧,标题自我描述它..我需要运行一个sql函数来清理一些重复的帖子,我需要每天做几次,所以我需要使用cron ...

我设置了一个新的crontab作业,如下所示:

00 16,18,19,20,21 * * * mysql -h MY-DB-HOST.COM -u MY-DB-USERNAME -pMY-DB-PASSWORD -e "delete from hotaru_posts where post_id in ( select post_id from ( select post_id from hotaru_posts a group by post_title having count(post_title) > 1 ) b )" >> /tmp/cron_job.log
Run Code Online (Sandbox Code Playgroud)

但似乎没有记录,所以我认为它不起作用.

sql句子没有问题,这不是问题.

我的cron规则有什么问题吗?

Luc*_*tos 8

好吧,因为mysql在crontab中没有正常工作(我认为这是像Alex Howansky所说的路径问题),我创建了一个处理此查询的php文件并在crontab中调用了php,更加容易,并且给了我使用条件的选项.

cron工作:

00 8,14,18,19,20,21,23 * * * /usr/local/bin/php /home/aikaforum/cata/public_html/cron_dup.php >> /cata/tmp/cron_dup.log 
Run Code Online (Sandbox Code Playgroud)

php:

<?php
$username="xxxxxxx";
$password="xxxxxx";
$dbname="xxxxxx";
$dbhost="xxxxx.xxxxx.com";
$query="delete from hotaru_posts where post_id in ( select post_id from ( select post_id from hotaru_posts a group by post_title having count(post_title) > 1 ) b )";
mysql_connect($dbhost,$username,$password);
@mysql_select_db($dbname) or die(strftime('%c')." Unable to select database");
mysql_query($query);
mysql_close();
echo strftime('%c')." ok!";
?>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.