在sql server中, 一般是用維護計畫實現刪除過期檔案。不過直接用指令碼也是可以的,而且更靈活。
下面介紹三種方法, 新建乙個作業, 在作業的步驟裡加上相關的指令碼就可以了。
--1. xp_delete_file
--優點:相容性好
--缺點:不能刪除sql server之外建立的檔案,包括rar
--備註:維護計畫中的「清理維護」也是呼叫此 擴充套件儲存過程 來刪除檔案。
declare @olddate datetime
set @olddate = getdate()-7
execute master.dbo.xp_delete_file
0, --0: 備份檔案,1: 維護計畫文字報告
n'd:\database_bak\', --檔案路徑
n'bak', --副檔名
@olddate, --在此時間之前的檔案一律刪除
1 --刪除子資料夾中的檔案
--2. xp_cmdshell
--優點:非常靈活,可以刪除任何型別的檔案
--缺點:要求許可權較大,開啟後存在安全隱患
declare @directory nvarchar(50) --目錄
declare @days nvarchar(10) --保留多少天
declare @extensions nvarchar(max) --副檔名
declare @scripts nvarchar(4000)
set @directory=n'd:\database_bak'
set @days = n'7'
set @extensions = n'bak'
set @scripts=n'forfiles /p "'+@directory+'" /s /m *.'+@extensions+' /d -'+@days+' /c "cmd /c del @path"'
exec xp_cmdshell @scripts
--3. powershell
--優點:非常靈活,可以刪除任何型別的檔案
--缺點:不適用於 sqlserver2005
--備註:在作業的步驟中,型別必須選擇 "powershell"
$timeoutday = 7
$filepath = "d:\database_bak"
$allfile = get-childitem -path $filepath
foreach($file in $allfile)
}
SQL刪除過期檔案
在sql server中,一般是用維護計畫實現刪除過期檔案。不過直接用指令碼也是可以的,而且更靈活。下面介紹三種方法。優點 相容性好 缺點 不能刪除sql server之外建立的檔案,包括rar 備註 維護計畫中的 清理維護 也是呼叫此 擴充套件儲存過程 來刪除檔案。declare olddate ...
linux刪除過期檔案
建立刪除檔案指令碼 bin sh 定義所刪除目錄路徑 location find location mtime 365 type f name jmhrms trc exec rm f 或者 bin sh find u01 oracle admin jmhrms bdump mtime 365 ty...
linux刪除過期檔案
建立刪除檔案指令碼 bin sh 定義所刪除目錄路徑 location find location mtime 365 type f name jmhrms trc exec rm f 或者 bin sh find u01 oracle admin jmhrms bdump mtime 365 ty...