Script que utiliza consultas MySQL para eliminar automáticamente la salida

Script que utiliza consultas MySQL para eliminar automáticamente la salida

Tengo esta consulta que genera actualizaciones de más de 7 días de una base de datos. ¿Cómo haría un script que tome la declaración de MySQL y la coloque en un script para que sea ejecutado por cron?

echo "select name, reported_at from nodes where reported_at < curdate() -7;" |
mysql dashboard

Salida de muestra:

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

Respuesta1

Podrías crear un archivo~/ruta/a/miconsulta.sql:

select name, reported_at from nodes where reported_at < curdate() -7;

Y para editar tu crontab ejecuta

crontab -e

Y en tu crontab agrega una línea

* * * * * mysql dashboard < ~/path/to/myquery.sql > ~/path/to/query/output

Para editar la frecuencia con la que se ejecuta este comando, debe editar los cinco * al comienzo de esa línea. Para comprender cómo hacer esto correctamente, puede consultaresta página.

Respuesta2

Simplemente guárdelo en un archivo y luego rediríjalo a la mysqlherramienta en su crontab.

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

información relacionada