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中怎么定时删除文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。