MySQLクエリを使用して出力を自動的に削除するスクリプト

MySQLクエリを使用して出力を自動的に削除するスクリプト

データベースから 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

ファイルを作成することもできます~/path/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

このコマンドの実行頻度を編集するには、その行の先頭にある5つの*を編集する必要があります。これを適切に行う方法を理解するには、以下を参照してください。このページ

答え2

ファイルに保存し、mysqlcrontab 内のツールにリダイレクトするだけです。

* * * * * mysql ... < savedstatements.sql

関連情報