
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.03.2017, 17:19
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Добрый день, Есть следующая задач, в Oracle есть таблица в которой хранится имя папки и имена файлов, которые нужно удалить. Подскажите пожалуйста как реализовать чтение из БД в цикле как для unix так и для Windows среды, знаю что вопрос начального уровня, буду признателен как за примеры кода, так и за полезные ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 18:03
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Небольшое уточнение, сервер Oracle и сервер на котором находятся папки/файлы это два совершенно разных сервера. С сервера на котором находятся папки/файлы (Unix/Windows) можно увидеть БД, но в свою очередь Oracle сервер ничего не знает о другом сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 18:15
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583, смонтировать по NFS на сервер с базой и работать как с локальными через utl_file ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 18:20
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583, dbms_scheduler external job , и там уже что душе угодно, если секьюрити позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 18:40
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583Небольшое уточнение, сервер Oracle и сервер на котором находятся папки/файлы это два совершенно разных сервера. С сервера на котором находятся папки/файлы (Unix/Windows) можно увидеть БД, но в свою очередь Oracle сервер ничего не знает о другом сервере. Что за приложение на другом сервере? application server? Если так, то работать надо на нем, а с сервера БД только запрашивать список. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 18:50
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Смонтировать нет возможности, запрещено и насколько я знаю utl_file не поддерживает удаление папок. Вопрос собственно в том, что нужна помощь в написании cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 19:09
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583Смонтировать нет возможности, запрещено и насколько я знаю utl_file не поддерживает удаление папок. Вопрос собственно в том, что нужна помощь в написании cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки. И как ты будешь запускать удаленную команду удаления? Если запрещено монтирование, то и варианты: unix: ssh, ftp windows: at, del \\server\path Будут скорее всего запрещены Узнай сначала что можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 19:17
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Vadim Lejnin, Будет создан cron job, который будет запускаться по определённому расписанию, вычитывать все данные из таблицы - удалять файлы/папки на своем сервере и затем чистить таблицу в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 19:33
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки.Почему бы не Perl+DBD/DBI, для обеих платформ; unlink одна и та же, и примеров море... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 19:54
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
ma1tusSergey_2583cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки.Почему бы не Perl+DBD/DBI, для обеих платформ; unlink одна и та же, и примеров море...А смысл городить столько огорода? Одного sqlplus достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 20:24
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
файл rm_file.sql Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 20:27
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
лучче Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 20:42
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
где-то так Код: plsql 1. 2. 3. В чмод для интерпретации скрипта шеллом нет необходимости. Но и запуск самого сгенеренного файла опосля sqlplus излишество. Да и сама генерация файла тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 21:03
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Спасибо, а всё таки есть возможность реализации через цикл? Чтобы можно было после каждого удаления например добавить логирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 21:28
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583Чтобы можно было после каждого удаления например добавить логирование. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.03.2017, 23:03
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Я понимаю, что в целом решение задачи уже наверное есть, но как быть если нужно обрабатывать построчно данные из БД? Прочитали первую строку: - удалили файл с указанным именем - удалили папку с указанным именем - обновили строку в БД - записали в лог таблицу, что выполнили такое действие над файлом/папкой успешно Прочитали следующую строку и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2017, 00:00
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Sergey_2583как бытьзависит от того, как проверяющий будет определять твою итеративность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2017, 16:10
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
где-то так Код: plsql 1. 2. 3. Код: plsql 1. 2. Получение имён файлов неизвестно откуда и использование их в Unix shell может закончиться очень плохо: http://www.dwheeler.com/essays/filenames-in-shell.html Надо очень внимательно проверять имена и экранировать в них разные спецсимволы. Поддерживаю предыдущих ораторов насчёт perl и его DBI - там такой проблемы нет и оно встроено в состав сервера Oracle, так что ничего ставить дополнительно не надо. Или написать на java, там бибилотека для подключения к базе поставляется одним файлом и тоже портабельна между Windows/Unix. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2017, 16:42
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
На PHP тоже запросто делается. К примеру, я зипую файлы перед отправкой по FTP таким способом: Код: php 1. 2. Где $locatio n передается имя файла, которое как раз выбирается из базы, в в этот же файл заливаются данные тоже из базы и, в итоге, zip-файл отправляется и затем стирается и TXT и ZIP Код: php 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2017, 17:23
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Oleg M.Ivanov Код: php 1. Тоже чревато проблемами со специмволами в именах файлов. Oleg M.Ivanov Код: php 1. Это вообще кошмар. Неужели в php нет встроенной функции удаления файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.03.2017, 00:46
|
|||
|---|---|---|---|
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
Мутагенгде-то так Код: plsql 1. 2. 3. Код: plsql 1. 2. Получение имён файлов неизвестно откуда и использование их в Unix shell может закончиться очень плохо: http://www.dwheeler.com/essays/filenames-in-shell.html Надо очень внимательно проверять имена и экранировать в них разные спецсимволы. Поддерживаю предыдущих ораторов насчёт perl и его DBI - там такой проблемы нет и оно встроено в состав сервера Oracle, так что ничего ставить дополнительно не надо. Или написать на java, там бибилотека для подключения к базе поставляется одним файлом и тоже портабельна между Windows/Unix. +1 тем более, сюрприз, но sqlplus не умеет работать с stderr чуть менее, чем вообще: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. спрашивается в задаче, какого ...... ORA-00942 делает в stdout? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.03.2017, 08:28
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
dbpatchМутагенпропущено... Получение имён файлов неизвестно откуда и использование их в Unix shell может закончиться очень плохо: http://www.dwheeler.com/essays/filenames-in-shell.html Надо очень внимательно проверять имена и экранировать в них разные спецсимволы. Поддерживаю предыдущих ораторов насчёт perl и его DBI - там такой проблемы нет и оно встроено в состав сервера Oracle, так что ничего ставить дополнительно не надо. Или написать на java, там бибилотека для подключения к базе поставляется одним файлом и тоже портабельна между Windows/Unix. +1 тем более, сюрприз, но sqlplus не умеет работать с stderr чуть менее, чем вообще: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. спрашивается в задаче, какого ...... ORA-00942 делает в stdout? Наверное потому, что это не stderr Варианты: - exception PL/SQL блока - предварительная проверка наличия таблицы PL/SQL - разные фокусы с макроподстановками sqlplus и column newval - обработка WHENEVER SQLERROR /OSERROR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.03.2017, 09:44
|
|||
|---|---|---|---|
|
|||
Удаление файлов и папок на ОС по данным из БД |
|||
|
#18+
МутагенOleg M.Ivanov Код: php 1. Тоже чревато проблемами со специмволами в именах файлов. Oleg M.Ivanov Код: php 1. Это вообще кошмар. Неужели в php нет встроенной функции удаления файлов? 1. Я сам файлы создаю, сам и удаляю, там все предсказуемо. 2. Есть, конечно, unlink и rmdir , соответственно, для удаления файла и каталога, но мне вполне достаточно выполнить команду ОС, тем более, что сначала в той же ОС файл зиповать сначала нужно и уже переменная подготовлена. Ну а топикстартеру просто как варианты для выбора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1886277]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 518ms |

| 0 / 0 |
