通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
文件格式
分 时 日 月 星期 要运行的命令
- 第1列分钟0~59
- 第2列小时0~23(0表示子夜)
- 第3列日1~31
- 第4列月1~12
- 第5列星期0~7(0和7表示星期天)
- 第6列要运行的命令
创建
$ crontab -e
一开始的时候编辑保存后提示如下:
crontab: "/usr/bin/vi" exited with status 1
在网上搜了一下,大概是说 /usr/bin/vi
被链接到了vim
$ ll /usr/bin/vi
lrwxr-xr-x 1 root wheel 3B 10 18 2015 /usr/bin/vi -> vim
可以将 export EDITOR=vim
写入 shell的启动配置文件,
- 对于bash, 写入 ~/.bashrc
- 对于zsh, 写入 ~/.zshrc
记得写入后要
source
一下才生效。
另外也看到网上有其他人是因为权限问题导致的以上的错误?https://www.baiyuxiong.com/?p=1413
再次执行 crontab -e
编辑并保存成功
$ crontab -e
crontab: installing new crontab
应用
创建一个23:30定时清理回收站的任务
# crontab -e
30 23 * * * sh ~/run-script/clear.sh
# ~/run-script/clear.sh
rm -rf ~/.Trash
$ crontab -l
0 11 * * * sh ~/run-script/clear.sh
参考:
- https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html
- https://www.jianshu.com/p/216b481256e7