-
Notifications
You must be signed in to change notification settings - Fork 0
配置定时任务(Linux环境)
-
前置条件:安装crond服务,并已启动
#查看crond服务是否启动,出现以下日志表示已启动 $/sbin/service crond status crond (pid 30742) is running...
-
第一步:创建作业的配置文件(json格式) 。这里假设已配置好MySQL到ODPS的配置文件mysql2odps.json
{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "****", "password": "****", "column": ["id","age","name"], "connection": [ { "table": [ "test_table" ], "jdbcUrl": [ "jdbc:mysql://127.0.0.1:3306/test" ] } ] } }, "writer": { "name": "odpswriter", "parameter": { "accessId": "****", "accessKey": "****", "column": ["id","age","name"], "odpsServer": "http://service.odps.aliyun.com/api", "partition": "pt='datax_test'", "project": "datax_opensource", "table": "datax_opensource_test", "truncate": true } } } ], "setting": { "speed": { "channel": 1 } } } }
-
第二步:列出列出crontab文件,命令: crontab -l
(1)若出现以下日志,表示当前用户没有定时任务,用户需要新建crontab文件,并提交crontab文件,参考第三步。$crontab -l no crontab for xxx
(2)若出现以下日志,表示当前用户已经有正在运行的定时任务,用户只需用命令crontab -e 来编辑crontab文件,参考第四步。
shell $ crontab -l 0,10,20,35,44,50 * * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
- 第三步:若当前用户没有定时任务(之前从未创建过crontab任务)
(1)创建一个新的crontab文件,如取名crondatax
示例1:每天13点5分进行同步作业,并把运行日志输出到目录/home/hanfa.shf/下log.运行时间 文件中,如定时运行是在2016-3-26 13:10:13运行的,产生的日志文件名为:log.20160326131023$ vim crondatax #输入以下内容 5 13 * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1 #/home/admin/datax3/bin/datax.py 表示你安装的DataX datax.py所在目录(请替换为您真实的绝对路径目录); #/home/admin/mysql2odps.json 表示作业的配置文件目录(请替换为您真实的绝对路径目录); #/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 表示日志输出位置,并以log.当前时间 命名(请替换为您真实的绝对路径目录)
(2)提交你刚刚创建的crontab文件
shell $ crontab crondatax #crondatax 你创建的crontab文件名
(3)重启crontab服务
shell $ sudo /etc/init.d/crond restart Stopping crond: [ OK ] Starting crond: [ OK ]
(4)在13点5分过后,在日志目录会看到对应的日文件
shell $ ls -al /home/hanfa.shf/ -rw-r--r-- 1 hanfa.shf users 12062 Mar 26 13:05 log.20160326130501
-
第四步:若当前用户已有定时任务(想继续增加定时任务)
(1)编辑已有crontab文件
示例2:每10分钟运行一次同步任务,并把运行日志输出到目录/home/hanfa.shf/下log.运行时间 文件中,如定时运行是在2016-3-26 13:10:13运行的,产生的日志文件名为:log.20160326131023$ crontab -e #会进入已有crontab文件编辑界面,继续增加定时任务即可,本示例增加以下内容,并保存 0,10,20,30,40,50 * * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
(2)重启crontab服务
```shell
$ sudo /etc/init.d/crond restart Stopping crond: [ OK ] Starting crond: [ OK ] ``` (3)用crontab -l 命令检查是否添加成功
$ crontab -l
5 13 * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
0,10,20,30,40,50 * * * * python /home/admin/datax3/bin/datax.py /home/admin/mysql2odps.json >>/home/hanfa.shf/log.`date +\%Y\%m\%d\%H\%M\%S` 2>&1
所有数据源配置指南,请参考:DataX数据源指南
安装crond服务
yum install crontabs
服务操作说明:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
加入开机自动启动:
/sbin/chkconfig --level 35 crond on
crontab命令格式说明: