0

每晚使用脚本自动查询几十个 MySQL 数据库的最佳方法是什么?该脚本通常不返回任何结果,所以我最好让它通过电子邮件发送或通知我是否有任何返回。

我已经为此研究了 PHP、Ruby 和 Python,但对于如何最好地处理这个问题我有点难过。

4

3 回答 3

1

我相信能回答这个问题的只有你。您提供的所有 3 个示例都可以使用 cron 完成您需要做的事情来自动化工作。但是要使用的最佳脚本语言是您最容易使用的一种。

于 2013-04-24T23:22:49.123 回答
1

虽然实际脚本执行有很多选项,但最终它们都归结cron为@squiguy 所说的那样。Cron 是事实上的任务调度程序,允许您随时运行任何自动化任务。

只需将您的查询放在一个文件中,将其另存为 .sql 某处,然后将类似这样的内容添加到您的 cron (run crontab -e) 中,以便每晚 3:30 运行它:

30 3 * * * /usr/bin/mysql -u<user> -p<pass> <dbname> < /var/scripts/myscript.sql

然后在 cron 中添加一行以通过电子邮件通知您:

MAILTO=mymail@address.com

在 crons 中,始终使用所有文件和可执行文件的绝对路径。运行which mysql以找出 mysql 可执行文件的绝对路径。

或者,您也可以像这样运行 PHP 脚本,并使用它ob_start来捕获所有输出,然后mail通过电子邮件或任何其他语言(如 Ruby、C++、Python 或所有关心 LISP 或 COBOL 的人)的类似语言发送。

于 2013-04-24T23:25:25.183 回答
0

如果可以使用存储过程,请使用事件: http ://dev.mysql.com/doc/refman/5.5/en/events.html

否则,您可以使用 cron:http: //quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger

如果您需要从 CLI 或 CGI 调用不起作用的 PHP 脚本,请使用 cron 调用文本浏览器 lynx 并将脚本的 URL 传递给它:http: //linux.die.net/man/ 1/猞猁

于 2013-04-24T23:24:13.420 回答