oracle 定时删除3天前的备份数据
来源:互联网 发布:数组下标长度没有限制 编辑:程序博客网 时间:2024/06/01 23:40
不需要保留那么多,按公司要求只需要保留一个星期的即可。
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
附件中有我实际操作的批处理供下载
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
附件中有我实际操作的批处理供下载
阅读全文
0 0
- oracle 定时删除3天前的备份数据
- shell备份mysql 并删除3天前的数据
- 定时备份mysql数据库 并删除7天前的备份 (windows linux )
- php 定时备份mysql数据库 并删除8天前的记录
- Linux下每天定时备份mysql数据库并删除7天前的备份文件
- windows定时删除一天前备份
- linux 下备份MySQL数据库 并删除7天前的备份数据
- Python备份数据库并定期删除n天前的备份数据(本地)
- Python备份数据库并定期删除n天前的备份数据(本地)
- [ORACLE]通用备份数据存储过程,适合编辑/删除前需要备份数据时使用
- 删除n天前的备份资料
- 远程服务器数据备份及N天前的数据删除bat
- MySQL创建定时event删除N天前数据
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- Linux下Oracle的数据定时自动备份
- java中的换行原则
- TCP和UDP区别
- 获取浏览器信息
- Jquery中map函数的用法
- WebService请求
- oracle 定时删除3天前的备份数据
- SAP MM批次管理(1)物料与批次
- Python学习10_图像简单滤波
- 修仙一样的java程序员!!!
- Spark安装部署
- PHP开发中常用的Linux命令之:远程迁移服务器项目篇
- 前端了解到的一些事
- Python pickle序列化模块
- iOS push的侧滑返回功能