linux指定文件夹保留最新的文件-并设定定时器

[root@emqx sh]# ls
keepfile.sh
[root@emqx sh]# cat keepfile.sh 
#!/bin/bash

#定义要扫描的文件夹路径
folder_path="/mnt/cephfs/workspace/hx-newcluster-002-95/notebook/552705985748996/yolov5-v6-2/tensorboard_log"

#定义保留的文件数量
keep_num=1

#判断文件夹是否存在
if [ ! -d $folder_path ]; then
echo "Folder does not exist!"
exit 1
fi

#切换到文件夹路径下
cd $folder_path

#获取文件数量
file_num=$(ls -l | grep "^-" | wc -l)

#判断文件数量是否超过保留数量
if [ $file_num -gt $keep_num ]; then

#计算要删除的文件数量
delete_num=$((file_num-keep_num))


#获取要删除的文件列表
    delete_list=($(ls -lt | grep "^-" | tail -$(($delete_num)) | awk '{print $9}'))

    #删除文件
    rm -f ${delete_list[@]}

fi

echo "Done!"

设定定时器 执行脚本:

crontab -e   

*/1 * * * * sh  /mnt/cephfs/workspace/hx-newcluster-002-95/notebook/552705985748996/yolov5-v6-2/sh/keepfile.sh

保存退出

修改后记得重启crond使改动生效

service crond restart

查看crond执行内容,可在最下方确认每分钟执行一次脚本文件

tail -f /var/log/cron

crontab 自定义执行时间
基础格式,定点执行
*  *  *  *  *  command
格式:    minute    hour    dayofmonth    month    dayofweek    command
解释:    分钟    小时    日期    月份    周    命令
范围:    0-59    0~23    1~31    1~12    0~7,0和7都代表周日    
看不懂没关系,和例子一起看就懂了

1.每个小时的第20分钟执行aaa.sh:

20  *  *  *  *  sh aaa.sh
2.每天12点20分的时候执行aaa.sh:

20  12  *  *  *  sh aaa.sh
3.每月第3天12点20分的时候执行aaa.sh:

20  12  3  *  *  sh aaa.sh
到这里这里可以得出关于基础的定点时间的用法,除此之外还有些高端的用法

, 代表不连续的时间
每小时的第5,10,15分钟执行aaa.sh

5,10,15  *  *  *  *  sh aaa.sh
- 代表连续的时间范围
每天的3-7小时的10分时执行aaa.sh

10  3-7  *  *  *  sh aaa.sh
*/n 代表每隔多久执行一次
每分钟执行一次

*/1  *  *  *  *  sh aaa.sh
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值