crontab 用法
常用命令如下
1 | crobtab crontab_info # 录入定时任务,只执行这个不会生效 |
crontab 的格式参考这个资料
例子
想要使用定时执行 shell 脚本,可以把定时任务写在 txt 然后再录入系统
新建一个文件为 crontab_info.txt,录入以下信息
1 | # 这个是注释 |
坑
第一个坑
只录入是不会生效的,录入完之后需要编辑下,然后保存退出后展示 crontab: installing new crontab
才会成功
第二个坑
- 如果是 Mac:shell 脚本开头必须写上
source /etc/profile
才会成功 如果是 Linux:shell 脚本开头必须写上以下代码
1
2
. /etc/profile
第三个坑
相对路径的问题。
shell 脚本中访问的一切数据都要注意路径问题,如先 cd 到对应的目录以及指明 node 的绝对路径
1
2
3
4
5
. /etc/profile
cd /home/ubuntu/Norcy/LeanCloud_Backup # 先 cd
/usr/local/bin/node auto_backup.mjs # 使用 /usr/local/bin/node 而不是 nodecrontab_info.txt 中要注意使用绝对路径
1
0 3 * * * timer.sh >> timer.log # 不生效,因为没加 /bin/sh;timer.sh 和 timer.log 的路径都是在 ~
1
0 3 * * * /bin/sh /home/ubuntu/Norcy/LeanCloud_Backup/timer.sh >> /home/ubuntu/Norcy/LeanCloud_Backup/timer.log # 建议使用绝对路径
第四个坑
使用 crontab -e
如何将编辑器从 nano 改为 vim
1 | export VISUAL=vim |