好吧,标题自我描述它..我需要运行一个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规则有什么问题吗?
好吧,因为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)
谢谢你的帮助.
| 归档时间: |
|
| 查看次数: |
30271 次 |
| 最近记录: |