Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
На основе примера http://nikeshikari.blogspot.com/2008/05/tech-mssql-xpdeletefile.html нарисовал скрипт, который должен был бы удалять файлы старше 10 дней.

Но не удаляет. В параметр задаю расширение RAR, может из-за этого? Менял первый параметр 1 на 0 - не выходит каменный цветок.

DECLARE @DeleteDate datetime
SET @DeleteDate = DateAdd(day, -10, GetDate())

EXECUTE master.sys.xp_delete_file
1, -- FileTypeSelected (0 = FileBackup, 1 = FileReport)
N'G:\Backup\', -- folder path (trailing slash)
N'rar', -- file extension which needs to be deleted (no dot)
@DeleteDate, -- date prior which to delete
0 -- subfolder flag (1 = include files in first subfolder level, 0 = not)

Что я пропустил?
3 авг 14, 17:23    [16393236]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Но у меня есть скрипт на WSH, который выполняет удаление старых архивов.
Как его можно прикрутить в скрипт задания (JOB), чтобы не мучиться с приведенным выше нерабочим скриптом?
3 авг 14, 17:40    [16393274]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
А G, наверное, сетевой диск?
3 авг 14, 17:50    [16393292]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
mag2000
Member

Откуда:
Сообщений: 182
Владимир Лазурко,
Вполне возможно, что эта процедура не смотрит на расширение файла, а читает из самого файла некие признаки типов бэкап-файлов и файлов отчетов.
По той ссылке, что вы приводите
http://nikeshikari.blogspot.com/2008/05/tech-mssql-xpdeletefile.html
об этом также упоминается:
автор
This stored proc will only delete native sql server backup files or native maintainence report files, which is kind of disappointing.

Вот еще одна ссылка, где также говорится об этом:
http://stackoverflow.com/questions/212603/sql-server-xp-delete-file-not-deleting-files :
автор
You can't delete 7z files with xp_delete_file. This is an undocumented extended stored procedure that's a holdover from SQL 2000. It checks the first line of the file to be deleted to verify that it is either a SQL backup file or a SQL report file. It doesn't check based on the file extension.
3 авг 14, 18:29    [16393350]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Причем здесь SQL и обработка файлов? Пусть этим ОС занимается.
3 авг 14, 18:48    [16393388]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
invm
А G, наверное, сетевой диск?
G - локальный. У меня права локального админа, хотя джоб все равно ведь запускается от системного пользователя.

mag2000
Владимир Лазурко,
Вполне возможно, что эта процедура не смотрит на расширение файла, а читает из самого файла некие признаки типов бэкап-файлов и файлов отчетов.
По той ссылке, что вы приводите
http://nikeshikari.blogspot.com/2008/05/tech-mssql-xpdeletefile.html
об этом также упоминается:
автор
This stored proc will only delete native sql server backup files or native maintainence report files, which is kind of disappointing.

Вот еще одна ссылка, где также говорится об этом:
http://stackoverflow.com/questions/212603/sql-server-xp-delete-file-not-deleting-files :
автор
You can't delete 7z files with xp_delete_file. This is an undocumented extended stored procedure that's a holdover from SQL 2000. It checks the first line of the file to be deleted to verify that it is either a SQL backup file or a SQL report file. It doesn't check based on the file extension.
Спасибо. Я невнимательно прочитал все буквы.

Владислав Колосов
Причем здесь SQL и обработка файлов? Пусть этим ОС занимается.
Мой любимый SQL в джобе должен удалять старые архивы. Про ОСь - я ж говорю, что у меня есть WSH, который бы как-то запустить из джоба. Не из 1С же его запускать - тогда 1С надо держать на серваке с базами, а её место на сервере терминалов.
4 авг 14, 08:55    [16394223]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
mrGuest
Guest
Владимир Лазурко
На основе примера http://nikeshikari.blogspot.com/2008/05/tech-mssql-xpdeletefile.html нарисовал скрипт, который должен был бы удалять файлы старше 10 дней.

Но не удаляет. В параметр задаю расширение RAR, может из-за этого? Менял первый параметр 1 на 0 - не выходит каменный цветок.

DECLARE @DeleteDate datetime
SET @DeleteDate = DateAdd(day, -10, GetDate())

EXECUTE master.sys.xp_delete_file
1, -- FileTypeSelected (0 = FileBackup, 1 = FileReport)
N'G:\Backup\', -- folder path (trailing slash)
N'rar', -- file extension which needs to be deleted (no dot)
@DeleteDate, -- date prior which to delete
0 -- subfolder flag (1 = include files in first subfolder level, 0 = not)

Что я пропустил?


А у меня такой сценарий из джобы работает.

Правда входные параметры чуть отличаются:
FileTypeSelected = 0
folder path - без слеша в конце
file extension - bak
date prior which to delete - передается дата без времени
subfolder flag - не указан (дефолтный)
4 авг 14, 09:15    [16394250]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
А как засунуть это скрипт в джоб?

set fso=Wscript.CreateObject("Scripting.FileSystemObject")

dir="G:\SQL_Upload\dev_bases\"
set f = fso.GetFolder(dir)
Set fc = f.Files
For Each f1 in fc
d= f1.DateCreated
diff=DateDiff("d",d,Now)
if diff>14 Then
fso.DeleteFile(dir & "\" & f1.name)
end if
Next
4 авг 14, 10:29    [16394500]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
mrGuest
Владимир Лазурко
На основе примера http://nikeshikari.blogspot.com/2008/05/tech-mssql-xpdeletefile.html нарисовал скрипт, который должен был бы удалять файлы старше 10 дней.

Но не удаляет. В параметр задаю расширение RAR, может из-за этого? Менял первый параметр 1 на 0 - не выходит каменный цветок.

DECLARE @DeleteDate datetime
SET @DeleteDate = DateAdd(day, -10, GetDate())

EXECUTE master.sys.xp_delete_file
1, -- FileTypeSelected (0 = FileBackup, 1 = FileReport)
N'G:\Backup\', -- folder path (trailing slash)
N'rar', -- file extension which needs to be deleted (no dot)
@DeleteDate, -- date prior which to delete
0 -- subfolder flag (1 = include files in first subfolder level, 0 = not)


Что я пропустил?


А у меня такой сценарий из джобы работает.

Правда входные параметры чуть отличаются:
FileTypeSelected = 0
folder path - без слеша в конце
file extension - bak
date prior which to delete - передается дата без времени
subfolder flag - не указан (дефолтный)
Я пережимаю бэкапы RAR-ом и потому не отрабатывает. Не хочет он их жрать
4 авг 14, 10:31    [16394508]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Glory
Member

Откуда:
Сообщений: 104760
Владимир Лазурко
А как засунуть это скрипт в джоб?

Копи-пейстом.

PS
http://technet.microsoft.com/ru-ru/library/cc753551(v=ws.10).aspx
4 авг 14, 10:33    [16394520]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
mrGuest
Guest
Владимир Лазурко,

Как было сказано - копи-пастом.

Только укажите правильный тип шага задания:
http://msdn.microsoft.com/ru-ru/library/ms187056.aspx
4 авг 14, 11:05    [16394703]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Просто создайте план обслуживания... Не ищите приключений с RAR и прочим... Бэкапы и так прекрасно сжимаются штатными средствами.
4 авг 14, 11:32    [16394872]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
mrGuest
date prior which to delete - передается дата без времени
То есть с нулевым временем, так?
Убирал я слэш - не помогло. Значит, как написано выше, файлы проверяются по сигнатуре (заголовку), иначе нет смысла в первом параметре
4 авг 14, 12:00    [16395082]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Glory
Копи-пейстом.

mrGuest
Только укажите правильный тип шага задания:
http://msdn.microsoft.com/ru-ru/library/ms187056.aspx
Блин!
Точно! Спасибо!
Я ступил и всё хотел сделать в одном шаге!
Спасибо ишо раз, камрады!
Владислав Колосов
Бэкапы и так прекрасно сжимаются штатными средствами.
А мне надо с паролем и информацием для восстановления.
4 авг 14, 12:02    [16395094]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Владислав Колосов
Просто создайте план обслуживания...
В данном конкретном случае план подходит по иным политическим и религиозным причинам.
4 авг 14, 12:03    [16395101]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Владислав Колосов
Пусть этим ОС занимается.
Что имелось в виду? Виндовый шедуллер или тип шага джоба "CmdExec"?
4 авг 14, 12:05    [16395119]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Я нашел решение! и удаляет старые бэкапы, и командой SQL в одном шаге джоба можно выполнить:
exec dbo.xp_cmdshell 'FORFILES /D -10 /M *.rar /P G:\Backup\ /C "cmd /c del @path"'

/D -20 - глубина проверки даты (по умолчанию от текущей), здесь - получить файлы старше 10 дней
/M *.rar - маска поиска файлов. По умолчанию в текущей папке
/P G:\Backup\ - папка, в которой происходит поиск файлов[/quote]
4 авг 14, 12:47    [16395378]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Владимир Лазурко,

да, виндовый планировщик пусть это делает. По-моему как раз для него задача, если требуется с паролями (в открытом виде?) и блэкджеком.
4 авг 14, 14:02    [16395875]     Ответить | Цитировать Сообщить модератору
 Re: EXECUTE master.sys.xp_delete_file не удаляет нужные мне файлы  [new]
Владимир Лазурко
Member

Откуда: Украина
Сообщений: 8096
Владислав Колосов
да, виндовый планировщик пусть это делает. По-моему как раз для него задача, если требуется с паролями (в открытом виде?) и блэкджеком.
А ты не здаешься. А задача решена.
4 авг 14, 21:20    [16398543]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить