Linux定时删除文件

前言

在服务器中慎用rm -rf 等之类的删除命令,万一翻车了呢?万一手都敲快了呢?敲时一时爽,一直敲一直爽,事后跑路。。。

那就少用rm -rf等之类删除命令。。。
下面脚本就是为了避免以上情况的出现,把要删除的文件移动到一个目录,让定时器定时删除命令。。。

创建定时脚本

1
2
3
$ touch /home/shell/delete.sh
$ chmod 777 delete.sh
$ vi delete.sh

写入以下定时脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
echo ----------------------------------------------------
echo `date`
dir=/home/delete # 需要删除的目录
files=`ls ${dir}` # 获取当前目录的文件,如果需要作为参数的话,那就得加上``
for file in $files
do
if [ -e ${dir}/${file} ];then # 如果不为空
echo 需要删除的文件为: ${file} `date` # 如果前面有bash命令的话,后面执行bash命令得加上`` 否则会当作字符串输出。另外前面bash命令不能带上``否则会出错
rm -rf ${dir}/${file}
fi
done
echo `date`
echo ====================================================

添加定时任务

1
$ crontab -e

在文本追后追加

1
0 0 * * * cd /home/shell && ./delete.sh >> log.txt
谢谢,爱你么么哒