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

파일을 만들 수 있습니다~/경로/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

관련 정보