[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