使用crontab从DB中删除旧记录

Ran*_*Ran 0 linux crontab

我的MySql DB中有一个名为"user_action"的表.我希望每天删除此表中早于30天的旧记录(根据"action_date"datetime列),我想使用crontab执行此操作.

有什么想法吗?

nic*_*rim 5

创建/usr/local/bin/clear-out-old-records.sh并使其可执行:

#!/bin/bash
SQL="DELETE FROM user_action WHERE action_date < DATE_SUB(CURDATE(),INTERVAL 30 DAY)"

MYSQL_USER="<your-user>"
MYSQL_PASS="<your-password>"
MYSQL_DB="<your-db>"

echo $SQL | /usr/bin/mysql --user=$MYSQL_USER --password=$MYSQL_PASS $MYSQL_DB
Run Code Online (Sandbox Code Playgroud)

...然后放入/usr/local/bin/clear-out-old-records.shcrontab.