当前位置 博文首页 > 缘来侍你的博客:Linux 自动删除几天前的旧数据

    缘来侍你的博客:Linux 自动删除几天前的旧数据

    作者:[db:作者] 时间:2021-09-16 13:37

    语句写法:
    find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

    例1:
    find /u01/backups -mtime +10 -name "*.*" -exec rm -rf {} \;
    将/u01/backups目录下所有10天前带"."的文件删除

    "*.sql"就是删除后缀为sql的文件

    find:linux的查找命令,用户查找指定条件的文件
    /u01/backups:想要进行清理的任意目录
    -mtime:标准语句写法
    +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
    "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
    -exec:固定写法
    rm -rf:强制删除文件,包括目录
    {} \; :固定写法,一对大括号+空格+\+;

    ?

    如果报-exec的错误,可能是-rf后面的格式写错了,

    注意:-rf后面 {} 前后都有一个空格,而且最后的 \ 不能写成 /?


    可以将这小语句写到一个可执行文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。


    新建一个可执行文件clear.sh
    #vi clear
    #!/bin/sh
    find /u01/backups -mtime +10 -name "*.*" -exec rm -rf {} /;
    ??赋权
    #chmod 777 clear

    将clear.sh文件加入到系统计划任务,到点自动执行

    #crontab -e
    * 2 * * */usr/local/bin/clear
    这里的设置是每天凌晨2点执行clear文件进行数据清理

    cs