linux中怎么定时删除文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
目前创新互联已为上千余家的企业提供了网站建设、域名、网页空间、网站托管、服务器租用、企业网站设计、金坛网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
[oracle@TEST arch]$ cat d-archivelog.sh
#!/bin/bash
find /arch/ -mtime +2 -name '*.dbf' -exec rm -rf {} \;
find 目录 -mtime +日期 -name 文件名 -exec -rm -rf {} \;
删除/arch/目录下 2天前 *.dbf格式的文件
创建实验的文件制定
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of current time
[oracle@TEST arch]$ touch -t 201701080101 a.dbf
[oracle@TEST arch]$ touch -t 201701070101 b.dbf
[oracle@TEST arch]$ touch -t 201701060101 c.dbf
[oracle@TEST arch]$ touch -t 201701050101 d.dbf
给shell脚本添加执行权限
[oracle@TEST arch]$ chmod +x d-archivelog.sh
[oracle@TEST arch]$ ll
total 4
-rw-r--r-- 1 oracle oinstall 0 Jan 8 01:01 a.dbf
-rw-r--r-- 1 oracle oinstall 0 Jan 7 01:01 b.dbf
-rw-r--r-- 1 oracle oinstall 0 Jan 6 01:01 c.dbf
-rwxr-xr-x 1 oracle oinstall 65 Jan 9 18:34 d-archivelog.sh
-rw-r--r-- 1 oracle oinstall 0 Jan 5 01:01 d.dbf
执行脚本,报了个错误,但在命令行模式下可以执行成功
[oracle@TEST arch]$ ./d-archivelog.sh
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
[oracle@TEST arch]$ find /arch/ -mtime +1 -name *.dbf -exec rm -rf {} \;
[oracle@TEST arch]$ ls
darchivelog.sh
发现是find -name 参数*.dbf 是多个文件 在脚本中应加'*.dbf'
这样就执行成功了。
[oracle@TEST arch]$ cat d-archivelog.sh
#!/bin/bash
find /arch/ -mtime +2 -name '*.dbf' -exec rm -rf {} \;
[oracle@TEST arch]$ ./d-archivelog.sh
[oracle@TEST arch]$ ll
total 4
-rw-r--r-- 1 oracle oinstall 0 Jan 8 01:01 a.dbf
-rw-r--r-- 1 oracle oinstall 0 Jan 7 01:01 b.dbf
-rwxr-xr-x 1 oracle oinstall 67 Jan 9 18:43 d-archivelog.sh
添加到定时任务
系统自动指定文件
[oracle@TEST arch]$ crontab -e
[oracle@TEST arch]$ crontab -l
* 1 * * * /arch/d-archivelog.sh
分时日月周
手动指定文件
[oracle@TEST arch]$ vim log.cron
1 * * * * /arch/d-archivelog.sh
[oracle@TEST arch]$ crontab log.cron
[oracle@TEST arch]$ crontab -l
1 * * * * /arch/d-archivelog.sh
每小时的第一分钟执行脚本
关于linux中怎么定时删除文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。