0%

crontab使用技巧

linux crontab使用技巧

QQ群:397745473

执行命令时加时间

1
*/1 * * * * root echo 'command....' | xargs echo $(date '+\%Y-\%m-\%d \%H:\%M:\%S') >> "/a.log" 2>&1;

效果:

1
2
3
[root@abc]# cat a.log
2018-11-01 15:09:01 command....
2018-11-01 15:10:01 command....

有环境变量时需要注意

在crontab做oracle 日志导出时报错:UDE-00013、UDE-00019 单独使用正常

UDE-00013: Message 13 not found; No message file for product=RDBMS, facility=UDE
UDE-00019: You may need to set ORACLE_HOME to your Oracle software directory

在crontab调用的代码中增加$ORACLE_HOME的全局变量

解决办法:

1
2
3
4
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=dbserver
export ORACLE_TERM=xterm

crontab 常规使用方法

参考:http://leepiao.blog.163.com/blog/static/4850313020163132145513/

1
2
3
4
5
6
7
8
crontab 的格式是
分 时 日 月 周 命令
*表示每隔最小单位,但是,分必须是明确的定义

因此,设定每小时执行一次的话,只需要指明每小时的哪一分钟执行就可以了

可以用
0 * * * * command 来设定每小时的0分钟执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Crontab语法
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)

其中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。

Crontab 格式
使用crontab -e 添加要执行的命令。
添加的命令必须以如下格式:
* * * * * /command path

前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。

前5个字段分别表示:
分钟:0-59
小时:1-23
日期:1-31
月份:1-12
星期:0-6(0表示周日)

一些特殊符号:
*: 表示任何时刻
,: 表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

QQ群:397745473

欢迎关注我的其它发布渠道