|
|
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Добрый день, Есть следующая задач, в Oracle есть таблица в которой хранится имя папки и имена файлов, которые нужно удалить. Подскажите пожалуйста как реализовать чтение из БД в цикле как для unix так и для Windows среды, знаю что вопрос начального уровня, буду признателен как за примеры кода, так и за полезные ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 17:19 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Небольшое уточнение, сервер Oracle и сервер на котором находятся папки/файлы это два совершенно разных сервера. С сервера на котором находятся папки/файлы (Unix/Windows) можно увидеть БД, но в свою очередь Oracle сервер ничего не знает о другом сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:03 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583, смонтировать по NFS на сервер с базой и работать как с локальными через utl_file ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:15 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583, dbms_scheduler external job , и там уже что душе угодно, если секьюрити позволяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:20 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583Небольшое уточнение, сервер Oracle и сервер на котором находятся папки/файлы это два совершенно разных сервера. С сервера на котором находятся папки/файлы (Unix/Windows) можно увидеть БД, но в свою очередь Oracle сервер ничего не знает о другом сервере. Что за приложение на другом сервере? application server? Если так, то работать надо на нем, а с сервера БД только запрашивать список. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:40 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Смонтировать нет возможности, запрещено и насколько я знаю utl_file не поддерживает удаление папок. Вопрос собственно в том, что нужна помощь в написании cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 18:50 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583Смонтировать нет возможности, запрещено и насколько я знаю utl_file не поддерживает удаление папок. Вопрос собственно в том, что нужна помощь в написании cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки. И как ты будешь запускать удаленную команду удаления? Если запрещено монтирование, то и варианты: unix: ssh, ftp windows: at, del \\server\path Будут скорее всего запрещены Узнай сначала что можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 19:09 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Vadim Lejnin, Будет создан cron job, который будет запускаться по определённому расписанию, вычитывать все данные из таблицы - удалять файлы/папки на своем сервере и затем чистить таблицу в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 19:17 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки.Почему бы не Perl+DBD/DBI, для обеих платформ; unlink одна и та же, и примеров море... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 19:33 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
ma1tusSergey_2583cmd/bat и sh скрипта, в котором, будет реализован цикл по данным из таблицы в БД, на каждой итерации будет выполняться удаление файла + удаление папки.Почему бы не Perl+DBD/DBI, для обеих платформ; unlink одна и та же, и примеров море...А смысл городить столько огорода? Одного sqlplus достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 19:54 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#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:24 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
лучче Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 20:27 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
где-то так Код: plsql 1. 2. 3. В чмод для интерпретации скрипта шеллом нет необходимости. Но и запуск самого сгенеренного файла опосля sqlplus излишество. Да и сама генерация файла тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 20:42 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Спасибо, а всё таки есть возможность реализации через цикл? Чтобы можно было после каждого удаления например добавить логирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 21:03 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583Чтобы можно было после каждого удаления например добавить логирование. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 21:28 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Я понимаю, что в целом решение задачи уже наверное есть, но как быть если нужно обрабатывать построчно данные из БД? Прочитали первую строку: - удалили файл с указанным именем - удалили папку с указанным именем - обновили строку в БД - записали в лог таблицу, что выполнили такое действие над файлом/папкой успешно Прочитали следующую строку и тд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2017, 23:03 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Sergey_2583как бытьзависит от того, как проверяющий будет определять твою итеративность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 00:00 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#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:10 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
На PHP тоже запросто делается. К примеру, я зипую файлы перед отправкой по FTP таким способом: Код: php 1. 2. Где $locatio n передается имя файла, которое как раз выбирается из базы, в в этот же файл заливаются данные тоже из базы и, в итоге, zip-файл отправляется и затем стирается и TXT и ZIP Код: php 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 16:42 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
Oleg M.Ivanov Код: php 1. Тоже чревато проблемами со специмволами в именах файлов. Oleg M.Ivanov Код: php 1. Это вообще кошмар. Неужели в php нет встроенной функции удаления файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2017, 17:23 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#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, 00:46 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#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, 08:28 |
|
||
|
Удаление файлов и папок на ОС по данным из БД
|
|||
|---|---|---|---|
|
#18+
МутагенOleg M.Ivanov Код: php 1. Тоже чревато проблемами со специмволами в именах файлов. Oleg M.Ivanov Код: php 1. Это вообще кошмар. Неужели в php нет встроенной функции удаления файлов? 1. Я сам файлы создаю, сам и удаляю, там все предсказуемо. 2. Есть, конечно, unlink и rmdir , соответственно, для удаления файла и каталога, но мне вполне достаточно выполнить команду ОС, тем более, что сначала в той же ОС файл зиповать сначала нужно и уже переменная подготовлена. Ну а топикстартеру просто как варианты для выбора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2017, 09:44 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=171&tid=1886277]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 257ms |
| total: | 436ms |

| 0 / 0 |
