最近有个需求定时删除掉某文件夹内的文件,特来记录一下.
- 第一步,编写一个shell脚本cronDelete.sh
#!/bin/bash
#########################
#author:hex
#date:2020-05-14
#desc:定时删除文件夹中文件
#########################
delete_dir=/home/test001/testdelete
echo "要删除地址为:"${delete_dir}
cd ${delete_dir} >/dev/null
if [ $? -eq 0 ];then
echo `date`"切换目录成功!"
rm -rf ${delete_dir}/*
echo "删除成功!"
else
echo "切换目录失败"
exit 1
fi
- 第二步,添加crontab任务
1.查看定时任务状态
/etc/init.d/crond status
如果不是running
需要执行 /etc/init.d/crond start
2.将cronDelete.sh放到/home/test001/cron下
3.新建cronDeleteOut.text日志文件
4.修改cronDelete.sh的delete_dir为需删除的绝对路径
5.执行crontab -e
6.添加 * 1 * * * sh /home/test001/cron/cronDelete.sh > /home/test001/cron/cronDeleteOut.text
wq!保存即可
这样就会每天一点执行删除任务
特别注意
脚本中中一定要写绝对路径,一开始我配置文件是放在单独的一个ini中,这样执行的时候因为相对路径没有找到配置,就删除了/*所有的linux都被删除了.幸好我现在自己本地linux下执行了下.
如有不对请指出,欢迎留言讨论