每晚使用脚本自动查询数十个MySQL数据库的最佳方法是什么?该脚本通常不会返回任何结果,因此,如果有任何结果,我最好通过电子邮件或通知我。
我已经研究过PHP,Ruby和Python,但我对如何最好地处理这个问题感到有点困惑。
答案 0 :(得分:1)
我相信唯一可以回答这个问题的是你。你给出的所有3个例子都可以做你需要用cron做的事情来自动完成工作。但最好使用的脚本语言是您最习惯使用的语言。
答案 1 :(得分:1)
虽然实际的脚本执行有很多选项,但最终它们都归结为cron
,正如@squiguy所说。 Cron是事实上的任务调度程序,允许您随时运行任何自动化任务。
只需将您的查询放在一个文件中,将其保存为某个地方的.sql,然后将这样的内容添加到您的cron(运行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。
答案 2 :(得分: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/lynx