Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL / 7 сообщений из 7, страница 1 из 1
14.03.2017, 10:18
    #39418632
IGrch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
Ситуация запутанная. Проблема еще в том, что я совсем простак в этом деле...
Есть Windows Server 2012 R2 (сервер Х например) с корпоративной системой.
Задача:
1) Каждый день ночью делать проверку по дате изменения файла file.dbf , который лежит на другом серваке (доступ есть, я так понимаю обычное сравнение даты изменения с текущей датой).
2) Если изменения есть, то на сервере Х запускается file.cmd
Код: powershell
1.
2.
set NLS_LANG=.AL32UTF8
sql.bat /nolog @data4jira.sql


сам батник sql.bat
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CONNECT exch_jira/exch@alfa/alfa
ALTER SESSION SET NLS_NUMERIC_CHARACTERS=". ";
SET echo off
SET feedback off
SET term off
SET timing off
SET pause off
SET trimspool ON
SET sqlformat csv
spool data4jira_tel.csv
SELECT * FROM jira_view;
spool off
exit


это дело через java мне из другой системы формирует .csv файлик с необходимыми данным (все работает, описал лишь для понимания)
3) Далее на сервере X открывать MySQL и в нужную таблицу записывать данные из моего сформированного .csv с помощью команды (т.е этот код тоже прописан в скрипте?):
Код: sql
1.
2.
3.
4.
5.
LOAD DATA INFILE 'd:\\user.csv'
INTO TABLE `user`
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\'
LINES STARTING BY '' TERMINATED BY '\r\n'
IGNORE 1 LINES;



Помогите пожалуйста, какой скрипт должен быть (или сервис или что это?), чтобы все это автоматически делалось? как сделать так, чтобы каждую ночь это все запускалось? буду благодарен за развернутый ответ.
Ну и по разделу вопрос: каким образом прописать, чтобы запускался MySQL (MySQL comand line) , прописывался логин/пароль, выбиралась нужная база, таблица и запускался код из пункта 3.
...
Рейтинг: 0 / 0
14.03.2017, 11:38
    #39418703
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
Пишете батник, например, который:
1) берёт листинг каталога с датами файлов, ищет строку с "file.dbf" (пайп в find), ищет строку с текущей датой (пайп во второй find), если не находит - exit;
2) запускает file.cmd и ждёт завершения его работы (start /w);
3) запускает mysql.exe и передаёт ему необходимые для подключения данные (сервер. логин, пароль, БД) и показанную команду на исполнение.
Формируете задание в планировщике, которое запускает этот батник ежедённо в нужное время от имени нужной учётной записи с полной загрузкой профиля.

Всё.
...
Рейтинг: 0 / 0
14.03.2017, 11:45
    #39418718
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
IGrch по разделу вопрос: каким образом прописать, чтобы запускался MySQL (MySQL comand line) , прописывался логин/пароль, выбиралась нужная база, таблица и запускался код из пункта 3.
5.5.1.1 mysql Options .
Необходимые ключи:
--host
--user
--password
--database
--execute
...
Рейтинг: 0 / 0
14.03.2017, 11:49
    #39418724
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
PS. Показанный запрос загружает данные, дополняя уже имеющиеся в таблице user. Если при этом возникнет нарушение целостности из-за дублирования записей. запрос не будет выполнен. В этом случае необходимо либо добавить в запрос кляузу REPLACE (либо IGNORE), либо, если необходимо полностью заменить старые данные на новые, выполнить предварительно TRUNCATE таблицы.
...
Рейтинг: 0 / 0
14.03.2017, 13:34
    #39418859
IGrch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
Спасибо за ответы Akina!
Но я, к сожалению, не знаю как это должно выглядеть... (батник), особенно, из Вашего сообщения, пункт 3
Есть ли какой-нибудь пример или наброски?
...
Рейтинг: 0 / 0
14.03.2017, 19:42
    #39419273
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
IGrchсам батник sql.batЭто не батник, а скрипт для оракловой клиентской утилиты sqlplus. Да и параметры "/nolog @data4jira.sql" для него же.
И java тут вовсе ни причем.

Я бы под всю эту задачу написал один cmd, в который бы делал следующее:
Код: sql
1.
2.
3.
set NLS_LANG=.AL32UTF8
sqlplus.exe /nolog @data4jira.sql
mysqlimport ...


В параметрах mysqlimport должно быть указание хоста, базы, пользователя, пароля, таблицы, исходного файла, всех разделителей.

И еще - если это не слишком ресурсоемкая задача, то не морочиться с датой файла, а выполнять операцию ежесуточно и безусловно. Ибо изменение даты файла не коррелирует однозначно с изменением содержимого этого файла. Кроме того, сравнивать надо не с текущей датой, а с датой файла при последней загрузке, которую еще надо где-то хранить.
...
Рейтинг: 0 / 0
15.03.2017, 09:36
    #39419482
IGrch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
пока что вот что родил:
@echo off
set now=%DATA%
for %%I in (file.txt) do set late=%%~tI
if %now% equ %late% (echo YES) else (echo NO)


по отдельности все ок, но собрал и этот вариант не пашет(( в чем проблема?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]