【问题标题】:Create CRON job to get/send database value创建 CRON 作业以获取/发送数据库值
【发布时间】:2011-10-28 01:51:56
【问题描述】:

想做一些我认为相当基本的事情,但之前从未写过 CRON 工作,我真的不知道该怎么做。基本上,我编写了一个简单的数据库查询:

SELECT SUM(total) as totalDownloads FROM wp_podpress_statcounts

如您所料,这会显示一个数字。不过,我想做的是创建一个每天自动运行此查询并将结果发送给我的 CRON。我正在跟踪播客的日常下载,而我使用的 podPress 插件在指标部门还有很多不足之处。理想情况下,我想建立自己的统计系统;但是,我的 PHP 还不够好。

提前致谢!

【问题讨论】:

  • 你尝试过什么吗?您在尝试实施时有任何具体问题吗?

标签: php mysql wordpress cron podpress


【解决方案1】:

如果您使用一些内置的 UNIX 工具,则无需 PHP:

从命令行执行,使用MySQL commandline:

mysql -e 'SELECT SUM(total) as totalDownloads FROM wp_podpress_statcounts';

要么为用户名和密码添加 -u -p,要么在您的主目录中添加 ~/.my.cnf

使用UNIX mail(1) 邮寄给自己:

mysql -e 'SELECT SUM(total) as totalDownloads FROM wp_podpress_statcounts' | mail your.addy@host.com

现在每天crontab

执行crontab -e 并输入这两行:

# at midnight, every day
0 0 * * *        mysql -e 'SELECT SUM(total) as totalDownloads FROM wp_podpress_statcounts' | mail your.addy@host.com

【讨论】:

  • 哇,好东西,谢谢!唯一的问题是我不确定该把它放在哪里。我的服务器正在运行 cPanel,它给了我一个 CRON 选项卡并要求我运行一个脚本。它让我可以选择一个时间表,所以我认为我不需要你代码的最后一部分;系统似乎会为我解决这个问题。另外,如果我的 localhost 和 DB 名称不同,我该如何配置?根据您发送的链接,我假设它类似于:mysql --user=user_name --password=my_password db_name 如何更改主机?
  • 在共享主机上,您不太可能以这种方式创建 cron 作业。这个答案更适用于直接访问主机服务器的人。
  • 在链接上,您还可以找到 --host 参数。请注意,如果您可以直接访问主机服务器,这确实适用。如果您不这样做,您可能无法访问某些工具(mysql/mail/crontab),您将不得不解决问题。幸运的是,PHP 脚本可以访问 MySQL,可以发送邮件,并且您可以使用您的 cPanel CRON 调用它。
【解决方案2】:

仅供参考 - 您还可以查看另一个选项 - mysql 事件。例如,类似于您在 MS SQL Server 中的内容。你可以做的事情有一些限制,所以你肯定想先检查一下。

查看:http://dev.mysql.com/doc/refman/5.1/en/events.html 了解更多信息。

就我个人而言,我经常编写一个 shell 脚本并使用上面提到的 cron。

【讨论】:

    猜你喜欢
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 2012-11-10
    • 2021-03-25
    相关资源
    最近更新 更多