oracle 定時刪除3天前的備份資料

來源:互聯網
上載者:User

標籤:http   io   ar   os   使用   sp   for   on   檔案   


不需要保留那麼多,按公司要求只需要保留一個星期的即可。 
1.那麼有什麼方法自動刪除7天以前備份的*.log檔案呢? 
2.伺服器過多,不可能一一手動建立,有沒有自動完成這個建立計劃任務的批處理呢? 
首先要解決的是自動刪除7天以前備份的log檔案,然後建立一個可以自動建立一個每 
周指定日期指定時間運行一次該自動刪除的批處理 

一:刪除7天以前備份的檔案 
命令 
FORFILES [/P pathname] [/M searchmask] [/S]
         [/C command] [/D [+ | -] {yyyy-MM-dd | dd}]

方法1: 
描述:可以刪除7天以前的尾碼名為log的記錄檔。如今天是6.29,那麼會刪除6.22 
號以前建立的檔案。不會刪除到資源回收筒。 
指定路徑為要刪除的檔案夾路徑,該批處理可以放在任意檔案夾下。 
forfiles /p D:/aizzw/LOG /m *.log -d -7 /c "cmd /c del /f @path" 
參數解釋: 
這裡的/p 指的是要刪除的備份檔案路徑 
        /m 指的是要匹配的字元,萬用字元為*號,尾碼名可以根據實際情況修改。 
如zzw*.log;*.bak;*.txt
-d 指的是日期,“-d -7”指的是從但前日期當前日期往前減7天。 
/c 指的是執行命令 
@path 返迴文件完整路徑
方法2: 
描述:可以刪除7天以前的尾碼名為log的記錄檔。 
不需要指定路徑,必須放在要刪除日誌的檔案下。刪除當前檔案夾下的匹配檔案。 
forfiles /m *.log -d -7 /c "cmd /c del /f @path" 
以上批處理已經在windows 2003的虛擬機器上測試通過

方法3:
為網友提供,可適用於xp,2000,而forfiles預設只有2003以上的系統才有。

::刪除F:/檔案備份裡的 7天前的txt檔案
::被刪除的檔案日期以檔案建立日期為主
@echo off
::取7天之前的日期.
>deldata_zw.zhu.vbs echo wscript.echo dateadd("d",-7,date)
for /f "tokens=1,2,3* delims=-" %%i in (‘cscript /nologo deldata_zw.zhu.vbs‘) do (
set y=%%i
set m=%%j
set d=%%k
)
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set rq=%y%-%m%-%d%
echo 注意:即將刪除 %rq% 以前建立的檔案
pause
::判斷檔案
for /f "skip=4 delims=" %%i in (‘dir/tc F:/TEST/*.log‘) do call :w "%%i"
del deldata_zw.zhu.vbs
goto :eof
:w
for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
set var=%1
set num=%var:~1,10%
if %num% lss %rq% del /q F:/TEST/%str%


二:自動建立每周運行一次的計劃任務 
建立計劃任務可用at,schtasks命令,schtasks提供了很多參數 
命令schtasks 
SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] ]
    [/SD startdate] [/ED enddate] [/IT] [/Z] [/F] 
方法: 
@echo off
schtasks /create /tn "Del-7_log" /ru system /tr D:/aizzw/del-7.bat /sc 
weekly /d mon /st 01:00
start %systemroot%/tasks
echo 建立成功,請檢查...
pause
del /f Create.bat
參數解釋: 
schtasks /create 指的是建立計劃任務 
/tn 指定計劃任務的名稱 
/ru 指定運行該批處理的帳號,如果去掉該參數則預設為當前賬戶運行,會提示輸入密碼。 
一個計劃任務所用的帳號如果密碼變動後該批處理就不再會運行成功 
所以我這裡使用系統帳號system,密碼就省略不寫。
/rp   指定帳號的密碼 
/tr 指定程式所在路徑,這裡為指定要執行的批處理存放路徑。 
/sc 為指定啟動並執行周期 
/d 為日期.這裡mon為英文單詞縮寫,周一 
/st 為已耗用時間 
start %systemroot%/tasks 這一句只是為了彈出計劃任務視窗查看建立成功與否 
del /f Create.bat 為建立完成後自動刪除建立該計劃任務的批處理 
schtasks命令詳細解釋可以參見微軟的 
http://technet.microsoft.com/zh-cn/cc772785 (WS.10).aspx#BKMK_create 
附件中有我實際操作的批處理供下載

oracle 定時刪除3天前的備份資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.