Shell 定时清理n天前的文件/目录

一、 shell脚本:

cd /Users/admin/em/build/
echo "进入目录: "
pwd
find ./ -mtime +60 -type d | xargs -n 5 rm -rf
  • find 查找命令
  • ./ 表示在当前目录下查找
  • -mtime +60 表示60天前
    +表示时间往左,从当前时间点往更早推,-表示往右,从当前时间点算起往后推移。
  • -type: f 查找文件/ d 查找目录
  • | xargs 表示把find命令的结果作为一个输入参数执行后面的命令rm -rf
  • -n 5 表示命令在执行的时候一次用的argument个数,分批每次删除5个
  • rm 删除命令,-rf 强制删除,不再向用户一一确认

二、 设置系统定时器

  • crontab -l 显示crontab文件,列出系统当前所有定时任务
  • crontab -e编辑crontab文件
  • 按i键进入insert模式(每周六的晚上0点0分执行删除文件脚本):
0 0 * * 6 /Users/admin/Desktop/clearTimer.sh 
  • {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
  • 分别表示 分钟(0-59)、时(0-23)、日(0-31)、月(1-12)、周(0-7,周日可以是0或7)、要执行的脚本路径
  • esc键,:wq退出

你可能感兴趣的:(Shell 定时清理n天前的文件/目录)