我有一个查询,它从数据库输出超过 7 天的更新。我将如何制作一个脚本,将 MySQL 语句放入一个由 cron 执行的脚本中。
echo "select name, reported_at from nodes where reported_at < curdate() -7;" |
mysql dashboard
示例输出:
name reported_at
xadf.edu 2012-03-21 14:39:02
xadf.edu 2012-03-22 15:30:01
adsfsadf.edu 2012-03-14 14:40:02
ekdahlj.edu 2012-03-23 03:40:04
adfasdf.net 2012-03-21 14:42:02
eqrsdr.edu 2012-03-15 14:42:02
qwerwfva.edu 2012-03-13 14:42:03
qerqwer.edu 2012-03-23 14:40:01
adfasde.edu 2012-03-05 17:42:03
bsfdgs.edu 2012-03-23 15:20:01
adfadsf.edu 2012-03-23 14:43:01
答案1
你可以创建一个文件〜/路径/to/myquery.sql:
select name, reported_at from nodes where reported_at < curdate() -7;
并编辑你的 crontab 执行
crontab -e
在你的 crontab 中添加一行
* * * * * mysql dashboard < ~/path/to/myquery.sql > ~/path/to/query/output
要编辑此命令的运行频率,您必须编辑该行开头的五个 *。要了解如何正确执行此操作,您可以查看这一页。
答案2
只需将其保存在文件中,然后将其重定向到mysql
crontab 中的工具即可。
* * * * * mysql ... < savedstatements.sql