Crontab是一个位于Linux和其余类Unix操作系统中的任务调度程序。它能够在指定的工夫内、周期性地执行指定的命令或脚本。Crontab是由“cron daemon”(cron守护程序)来治理的。

具体来说,您能够应用crontab命令来创立、编辑、删除和列出打算工作。应用crontab您能够:

  • 创立周期性执行的工作,如每分钟、每小时、每天、每周等;
  • 按指定的工夫执行工作,如在早晨12点、每月的第一天等;
  • 列出以后用户下的打算工作列表;
  • 编辑、删除、禁用或启用工作。

为了应用crontab,您须要理解其语法和工作形式。在每个用户的帐户中都有一个crontab文件,其默认地位是在/var/spool/cron/下。要创立或编辑一个crontab文件,您能够运行命令“crontab -e”。 它将关上一个新的编辑器窗口,您能够在其中增加或批改工作。

总而言之,crontab是一种十分有用的工具,能够帮忙管理员轻松地治理定期工作,从而进步计算机系统的可靠性和效率。
1written by CHATGPT

问题:服务器资源无限,提交测试nodejs时候会把整个我的项目打包上传,十分的占用空间,所以想用crontab定期清理不须要的我的项目包。

0 0 * * * cd /opt/bob/tools && sh del_tags.sh

每天0点 到"/opt/bob/tools"门路下,执行del_tags.sh脚本

#!/bin/bash                                                                                                                                                           # 获取以后工夫                                                                     current=$(date +"%Y%m")                                                                                                                                               # 1个月前的工夫                                                                    previous=$(date -d '1 months ago' +"%Y%m")                                                                                                                                                                                    # 输入后果                                                                         #echo "$current $previous"                                                                                                                                          # 应用find命令查找所有不以指定前缀的文件夹,并通过grep命令排除指定前缀的文件夹  find /opt/release/bak -type d | grep "Release\-" | grep -v "$current" | grep -v "$previous" | xargs -d "\n" rm -rf 

脚本含意就是找到所有Release结尾的门路,并且反选最近两个月的文件,删除他们
大部分还是查gpt的
在crontab的定时工作中,可能呈现"2>&1 &"的字样
含意:

在Linux命令行语句中,2>&1 &是两个特殊符号的组合,含意如下:

2>&1:将规范谬误输入2重定向到规范输入1上。即,将程序输入的错误信息和规范输入都发送到同一个输入流中,以便于对立解决和记录。
&:在命令结尾增加&符号能够将该命令放在后盾执行,并立即返回命令行提示符,以便用户持续操作命令行。


  1. 1 ↩