a melhor solução seria fazer um script curto sobre isso, e chamar esse script de cron
- você poderia fazer isso como uma linha única, mas seria feio e difícil de manter, e não há vantagem para ser tido. (deixe-me saber se você precisa de um exemplo)
edit:
tente algo ao longo destas linhas, fora do topo da minha cabeça:
#!/bin/bash
DB_USER='my_user';
DB_PASSWD='passwd';
DB_NAME='db_name';
TABLE='rass';
INPUT_FILE='/full/path/to/re.txt';
SQL="USE $DB_NAME; LOAD LOCAL DATA INFILE '$INPUT_FILE' REPLACE INTO TABLE '$TABLE' LINES TERMINATED BY '|' CHARACTER SET utf8;"
mysql --user=$DB_USER --password=$DB_PASSWD --default_character_set utf8 $DB_NAME -e "$SQL"
Quanto a onde colocá-lo, bem, isso é com você. Lembre-se de que, se você usar a raiz crontab
, o script será executado com permissões de root e deverá ser de propriedade de root
(e não ser gravável pelo mundo). Por esse motivo, às vezes tenho scripts desse tipo em /root
.
Espero que isso ajude:)