데이터베이스에서 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
파일에 저장하고 mysql
crontab의 도구로 리디렉션하면 됩니다.
* * * * * mysql ... < savedstatements.sql