MySQL 쿼리를 사용하여 출력을 자동으로 삭제하는 스크립트

MySQL 쿼리를 사용하여 출력을 자동으로 삭제하는 스크립트

데이터베이스에서 7일보다 오래된 업데이트를 출력하는 쿼리가 있습니다. cron에 의해 실행되는 스크립트에 MySQL 문을 넣는 스크립트를 어떻게 만들 수 있습니까?

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

이 명령이 실행되는 빈도를 편집하려면 줄 시작 부분에 있는 5개의 *를 편집해야 합니다. 이 작업을 올바르게 수행하는 방법을 알아보려면 다음을 확인하세요.이 페이지.

답변2

파일에 저장하고 mysqlcrontab의 도구로 리디렉션하면 됩니다.

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

관련 정보