powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
7 сообщений из 7, страница 1 из 1
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39418632
IGrch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация запутанная. Проблема еще в том, что я совсем простак в этом деле...
Есть 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
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39418703
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишете батник, например, который:
1) берёт листинг каталога с датами файлов, ищет строку с "file.dbf" (пайп в find), ищет строку с текущей датой (пайп во второй find), если не находит - exit;
2) запускает file.cmd и ждёт завершения его работы (start /w);
3) запускает mysql.exe и передаёт ему необходимые для подключения данные (сервер. логин, пароль, БД) и показанную команду на исполнение.
Формируете задание в планировщике, которое запускает этот батник ежедённо в нужное время от имени нужной учётной записи с полной загрузкой профиля.

Всё.
...
Рейтинг: 0 / 0
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39418718
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IGrch по разделу вопрос: каким образом прописать, чтобы запускался MySQL (MySQL comand line) , прописывался логин/пароль, выбиралась нужная база, таблица и запускался код из пункта 3.
5.5.1.1 mysql Options .
Необходимые ключи:
--host
--user
--password
--database
--execute
...
Рейтинг: 0 / 0
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39418724
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. Показанный запрос загружает данные, дополняя уже имеющиеся в таблице user. Если при этом возникнет нарушение целостности из-за дублирования записей. запрос не будет выполнен. В этом случае необходимо либо добавить в запрос кляузу REPLACE (либо IGNORE), либо, если необходимо полностью заменить старые данные на новые, выполнить предварительно TRUNCATE таблицы.
...
Рейтинг: 0 / 0
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39418859
IGrch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы Akina!
Но я, к сожалению, не знаю как это должно выглядеть... (батник), особенно, из Вашего сообщения, пункт 3
Есть ли какой-нибудь пример или наброски?
...
Рейтинг: 0 / 0
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39419273
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
    #39419482
IGrch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пока что вот что родил:
@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
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Скрипт на проверку даты изменения файла и запуск батника для записи в MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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