Linux下定时执行任务的几种方式
如果说我说如果,你的某一个目录下会经常的生成一些垃圾文件,比如访问日志、错误日志、core文件,而你又不想过几分钟就去手动检查一下,那么可以使用定时执行任务的方式来解决。目前我所知道的可以执行定时任务的方式有这么几种:crontab、后台脚本定时检查。
下面对这几种方式进行一下讲解:
1、使用脚本
这个方式比较简单,就是写个脚本,每次开机的时候自动让它启动,然后放在后台去执行就可以了。脚本代码如下:
$ cat cleanwitch.sh

1 #!/bin/bash 2 3 # which dir would you want to clean 4 # (please use absolute path like : 5 # /a/b/c ) 6 # split with space 7 #DIR_LIST="/root/temp /var/temp" 8 PATH_LIST="/home/normal/temp /home/normal/var" 9 10 # time : every (x) second 11 INTERVAL=3 12 13 # file filter 14 FILE_FILTER="core.*" 15 16 function clearfile() 17 { 18 rm -rf ${FILE_FILTER} 19 } 20 21 while true ; do 22 sleep ${INTERVAL} 23 for WORKPATH in ${PATH_LIST} ; do 24 if [ -n ${WORKPATH} ] ; then 25 NOW_PATH=`pwd` 26 cd ${WORKPATH} 27 clearfile 28 cd ${NOW_PATH} 29 fi 30 done 31 done
我们把这个文件放到/usr/local/bin目录下,并且给可运行权限:
$ chmod 755 cleanwitch.sh
这样一个可以执行的脚本就写好了,但是还没有设置开机启动呢。设置开机启动的方式也比较简单,就是在/etc/rc.local这个配置文件下增加一句运行我们这个脚本的命令就可以了,增加的这句话如下:
/usr/local/bin/cleanwitch.sh &
为什么要在这句话后面加个&呢?因为在一个命令后面加上这个符号之后呢,这句脚本中运行的命令就会被放到后台作为一个服务去执行了。因为每次linux开机后都会去执行一次这个/etc/rc.local脚本,所以我们的清理脚本也会在开机的时候自动执行,并且每隔一段时间就会去执行我们让它做的事情。
需要注意的是,不同的linux发行版中,rc.local的位置可能不同,不过基本都在/etc这个总目录下,如果实在找不到,可以使用下面的命令找一下:
$ cd /etc/
$ find -name rc.local
如果要想停掉这个脚本怎么做呢?在命令行执行如下命令就可以了:
$ killall cleanwitch.sh
2、第二种方式就是使用crontab了
还不会~~
作 者:fengbohello
个人网站:http://www.fengbohello.top/
E-mail : fengbohello@foxmail.com
欢迎转载,转载请注明作者和出处。
因作者水平有限,不免出现遗漏和错误。希望热心的同学能够帮我指出来,我会尽快修改。愿大家共同进步,阿里嘎多~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?