Загрузка данных в базу данных MySQL с помощью cron

Я хотел бы сделать загрузку данных в базу данных MySQL (Ubuntu 12.04) задачей cron. Я могу сделать это вручную, используя код:

LOAD LOCAL DATA 
INFILE re.txt
INTO table rasss
LINES TERMINATED BY '|'

Я также знаю, как добавить задание в файл crontab -e, но я сделал это только для однострочных команд

0
задан 26 August 2013 в 13:55

1 ответ

лучшее решение было бы сделать короткий сценарий этого и вызвать этот сценарий из cron - вы могли бы сделать это как одну строку, но это было бы уродливо и трудно поддерживать, и нет никакого преимущества иметь (дайте мне знать, если вам нужен пример)

редактировать:

попробовать что-то в этом духе: «117]

#!/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"
[ 118] Что касается того, где его поставить, то это зависит от вас. Имейте в виду, что если вы используете root crontab, то скрипт будет выполняться с правами root и должен принадлежать root (и не должен быть доступен для записи всем пользователям). По этой причине у меня иногда есть сценарии такого рода в /root.

Надеюсь, это поможет:)

0
ответ дан 26 August 2013 в 13:55

Другие вопросы по тегам:

Похожие вопросы: