linux计划定时自动删除目录下文件

你好朋友,我使用 Linux 一段时间了,想定期清理 /tmp 目录,但我遇到了一个大坑。
好吧,让我把它打破给你,这样你也不会踩到它。

当时我创建了一个shell脚本,想到了删除/tmp目录下的所有文件。
场景非常简单。
它大概会列出目录下的所有文件,然后一一删除。
我当时写的是这样的:
bash !/bin/bash 目录=/tmp 文件=ls$dir 对于 $files 中的文件 我愿意 如果 [-e $dir/$file];然后 rm -f $dir/$文件 菲 完成
然后我给脚本设置了执行权限,并且还使用crontab设置了一个计划任务,每天凌晨3 点自动执行脚本。
我觉得现在好多了,不用手动清理了。

结果第二天再看的时候,发现/tmp目录下的文件还存在。
我赶紧查看日志,发现脚本中没有日志功能,所以不知道脚本是否正常执行。

然后我回去查看文本,发现我写了一个无限循环。
每次删除文件时,脚本都会检查该文件是否存在,如果存在则再次删除它。
这会导致脚本循环执行,并且文件无法删除。

后来我添加了日志功能来记录所有的删除操作。
然后我更改了脚本,以便它只删除文件并且不再检查文件是否存在。
我终于明白了。

后来我也发现了一个问题。
您设置的定时任务将在凌晨3 点执行,但系统时间设置错误。
结果,这个脚本一直没有实现,我也一直没有意识到。

所以,兄弟,当你执行这个定时删除的时候,别忘了检查一下日志,看看脚本是否已经被执行了。
你还需要注意时间设置,以免像我一样闹出大笑话。

linux定时执行任务的shell脚本

哈,上周有客户问Linux下如何使用crontab。
我一看到这个问题就直接开始说话了。

首先我们来说一下这个crontab是什么。
在Linux系统上,它就像一个计时器,可以帮助你安排需要定期完成的任务。
例如,如果您希望每天晚上 2 1 :3 0 自动重新启动 smb 服务。
您可以使用 crontab 来设置它。

让我举个例子。
该命令如下所示:crontab -e。
这意味着我们要编辑 crontab 设置。
然后你会在编辑器中看到这样的格式:
3 0 2 1 重新启动 /etc/init.d/smb
这行代码每天晚上2 1 :3 0(即晚上9 :3 0)自动执行/etc/init.d/smb restart命令来重启smb服务。

接下来,让我向您解释一下该命令的各个部分:

3 0:分钟;显示3 0分钟。

2 1 : 晚上 9 点
: date 意思是每天。

- 月亮 表示每月。

- week 会显示一周中的每一天。

/etc/init.d/smb restart:这是重新启动 smb 服务所需运行的命令。

还有几个特殊符号如:

——代表所有可能的值。

:定义列表范围的逗号分隔值。

-- 整数之间的横线代表整数范围。

/:设置时间间隔频率。

这个用起来还是挺方便的;但是这个 crontab 命令默认启动 crond 进程;因此,您应该注意,您不需要自己启动它。

无论如何,这个 crontab 是执行日常任务的绝佳工具。
但是,如何定义它取决于您的需求。
这里只是给出一个大概的用法,具体的细节还需要你自己研究。
我还在思考这个问题。
如果您有更具体的问题,请随时问我。

linux利用shell脚本与crontab自动检测进程并定时重启