>Crontab是一个位于Linux和其他类Unix操作系统中的任务调度程序。它可以在指定的时间内、周期性地执行指定的命令或脚本。Crontab是由“cron daemon”(cron守护程序)来管理的。
>具体来说,您可以使用crontab命令来创建、编辑、删除和列出计划任务。使用crontab您可以:
>- 创建周期性执行的任务,如每分钟、每小时、每天、每周等;
>- 按指定的时间执行任务,如在晚上12点、每月的第一天等;
>- 列出当前用户下的计划任务列表;
>- 编辑、删除、禁用或启用任务。
>为了使用crontab,您需要了解其语法和工作方式。在每个用户的帐户中都有一个crontab文件,其默认位置是在/var/spool/cron/下。要创建或编辑一个crontab文件,您可以运行命令“crontab -e”。 它将打开一个新的编辑器窗口,您可以在其中添加或修改任务。
>总而言之,crontab是一种非常有用的工具,可以帮助管理员轻松地管理定期任务,从而提高计算机系统的可靠性和效率。
>[^1]written 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上。即,将程序输出的错误信息和标准输出都发送到同一个输出流中,以便于统一处理和记录。
&:在命令结尾添加&符号可以将该命令放在后台执行,并立刻返回命令行提示符,以便用户继续操作命令行。