Pao*_*olo 32 php mysql shell cron
我想从1周以上的所有人中清除我的SQL数据库,我想每晚都这样做.所以,我打算建立一个cron工作.如何在不必每次手动输入密码的情况下查询mySQL?
PHP中的查询如下:
mysql_query("DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7");
Run Code Online (Sandbox Code Playgroud)
有没有办法将其作为shell脚本运行?如果没有,有没有办法让cron运行一个php文件?
fan*_*nts 82
我个人觉得使用MySQL事件调度程序比使用cron更容易.
启用它
SET GLOBAL event_scheduler = ON;
Run Code Online (Sandbox Code Playgroud)
并创建一个这样的事件:
CREATE EVENT name_of_event
ON SCHEDULE EVERY 1 DAY
STARTS '2014-01-18 00:00:00'
DO
DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7;
Run Code Online (Sandbox Code Playgroud)
就是这样.
And*_*Day 42
尝试创建如下所示的shell脚本:
#!/bin/bash
mysql --user=[username] --password=[password] --database=[db name] --execute="DELETE FROM tbl_message WHERE DATEDIFF( NOW( ) , timestamp ) >=7"
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其添加到cron
这取决于你的系统上运行cron的是什么,但是你要从cron运行php脚本所要做的就是调用php安装的位置,然后调用脚本位置.每小时运行crontab的示例:
# crontab -e
00 * * * * /usr/local/bin/php /home/path/script.php
Run Code Online (Sandbox Code Playgroud)
在我的系统上,我甚至不必将路径放到php安装中:
00 * * * * php /home/path/script.php
Run Code Online (Sandbox Code Playgroud)
另一方面,您不应该使用mysql扩展,因为它已被弃用,除非您使用较旧的php安装. 请阅读此处进行比较.
归档时间: |
|
查看次数: |
81737 次 |
最近记录: |