crontab是Linux上很常用的定时任务
开启指令
crontab -e
查看当前定时任务
crontab -l
语法
从左到右的顺序一次为
分钟 小时 日期 月份 周(一周当中的某天) 执行脚本 参数1 参数2 …
示例
1 2 3 4 5 /path/xxx.sh param1 param2
常见场景
1.每隔n分钟运行一次脚本
*/n * * * * /path/test.sh
2.每天凌晨n点运行脚本
0 n * * * /path/test.sh
3.每月第n天的早上6点30分运行脚本
30 6 n * * /path/test.sh
4.每天的3点,12点,18点运行脚本
0 3,12,18 * * * /path/test.sh
0 1 * * * /home/workshop/projections/xx/backend/start.sh >> /home/workshop/projections/xx/backend/nohup.out 2>&1 &
订阅专栏
root用户下 输入 crontab -l 显示
no crontab for root 例如:
[root@localhost ~]# crontab -l
no crontab for root
这个问题非常简单,同样在 root 用户下输入 crontab -e
按 Esc 按: wq 回车
在输入 crontab -l 就没有问题了
&、 2>&1基本含义
/dev/null 表示空设备文件
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
file 表示将标准输出输出到file中,也就相当于 1>file
2> error 表示将错误输出到error文件中
2>&1 也就表示将错误重定向到标准输出上
2>&1 >file :错误输出到终端,标准输出重定向到文件file,等于 > file 2>&1(标准输出重定向到文件,错误重定向到标准输出)。
& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务,配合 >file 2>&1可以将log保存到某个文件中,但如果终端关闭,则进程也停止运行。如 command > file.log 2>&1 & 。
nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用。如nohup command &。