1、新建删除脚本 del.sh
#!/bin/bash #保留文件数 ReservedNum=5 ##保留最新的五个文件 FileDir=/data/bak ##文件目录 date=$(date "+%Y%m%d-%H%M%S") FileNum=$(ls -l $FileDir|grep ^- |wc -l) while(( $FileNum > $ReservedNum)) do OldFile=$(ls -rt $FileDir| head -1) echo $date "Delete File:"$OldFile rm -rf $FileDir/$OldFile let "FileNum--" done
2、添加自动运行任务crontab
如果未安装crontab,先安装
yum install crontabs -y
添加自动运行任务
crontab -e
0 0 * * * bash /home/sh/del.sh
意思是每天凌晨0点,自动运行 /home/sh文件夹下的del.sh脚本
查看任务
crontab -l
删除指定目录下的文件夹或者文件,指定天数
#!/bin/bash find /home/ -name 'test*' -type f -mtime +5 | xargs rm -rf
删除/home目录下5天以前的 文件名类似 test* 的文件
-type d 文件夹
find /folder/deleteFile/ -name "*.*" |xargs rm -rf '*'
注意:如果你的文件夹下信息太多的话,使用rm命令可能会报错“ /bin/rm: Argument list too long ”
#rm -rf /folder/deleteFile/*
2、在xshell中 输入crontab –e打开配置文件,在文件中新增一个任务行,修改完成后保存,注意sh的路径为你的sh所在的路径
备注:crontab中增加的任务行的含义,可以通过vi /etc/crontab查看,以上*/5 * * * *代表的则是5min执行一次sh脚本
执行java任务的时候,需要在编写脚本的时候加入java环境,例如
#! /bin/bash
source /etc/profile nohup /usr/local/java/bin/java -jar /opt/sample-1.0.0.jar > /dev/null 2>&1 &
https://tooltt.com/crontab/c/88.html
晚上11点到早上7点之间,每隔一小时重启smb
0 23-7 * * * /etc/init.d/smb restart
https://blog.csdn.net/weixin_43231331/article/details/113287682
查看执行记录可以用 tail -f /var/log/cron
cat /var/log/cron |grep xx 查看记录详情 vi -b /var/log/cron 查看邮件发送 cat /var/log/maillog
测试验证网站
https://tool.lu/crontab/