elasticdump从crontab中的bash启动,但不会转储所有记录
我在bash文件中有一个elasticdump命令elasticdump从crontab中的bash启动,但不会转储所有记录,bash,cron,Bash,Cron,我在bash文件中有一个elasticdump命令 #!/bin/bash elasticdump \ --input=url would be here/datalayer \ --output=weownit_data/datalayer_now.json \ --searchBody '{"query": {"filtered": {"query": { "match_all" : {}},"filter": {"bool": {"must": [{"numeric_
#!/bin/bash
elasticdump \
--input=url would be here/datalayer \
--output=weownit_data/datalayer_now.json \
--searchBody '{"query": {"filtered": {"query": {
"match_all" : {}},"filter": {"bool": {"must": [{"numeric_range": {"timestamp": {"gte": 1434499493}}},{"type" : {"value" : "event2"}}]}}}}}'
如果我单独运行该命令,它将正常工作。如果我自己运行bash文件,它就会正常工作,这两个文件都会下载200000条记录
我的crontab如下所示
0 2 * * * /home/woibasic/projects/all_since_jun172015.bash > /home/woibasic/projects/logging/elasticsearch.log
Fri, 26 Jun 2015 02:00:02 GMT | starting dump
Fri, 26 Jun 2015 02:00:02 GMT | got 100 objects from source elasticsearch (offset: 0)
当我查看elasticsearch.log时,它显示了以下内容
0 2 * * * /home/woibasic/projects/all_since_jun172015.bash > /home/woibasic/projects/logging/elasticsearch.log
Fri, 26 Jun 2015 02:00:02 GMT | starting dump
Fri, 26 Jun 2015 02:00:02 GMT | got 100 objects from source elasticsearch (offset: 0)
所以问题是,为什么它停止在100个对象上,因为某种原因,cron似乎关闭得太快了 crontab与您测试脚本的用户相同,对吗elasticdump和/或Node.js是否需要一些环境变量才能按预期工作?elasticdump是全局设置的,所以我认为这不对,应该是同一个用户,但我认为,是的,嗯,这可能是一个权限问题——比如elasticdump是存在的,因为它没有将从elasticsearch获得的对象输出到输出文件的权限。虽然通常我会在输出中看到一条关于这一点的消息。“如果您使用在用户下启动的
crontab-e
编辑crontab,则它是用户的crontab,cron将作为用户运行命令。---关于环境变量,我建议:--1。列出函数环境(脚本工作的地方)中的变量:export
——2.在空环境下运行shell:exec-cbash--norc--noprofile
--3.尝试在那里运行脚本。如果不起作用,则从1导出变量。在剧本中4.如果它确实与导出的变量一起工作,那么您可以逐个测试以找到所需的变量。我也有这个问题,您同时发现了什么吗?crontab与您测试脚本的用户是同一个用户,对吗elasticdump和/或Node.js是否需要一些环境变量才能按预期工作?elasticdump是全局设置的,所以我认为这不对,应该是同一个用户,但我认为,是的,嗯,这可能是一个权限问题——比如elasticdump是存在的,因为它没有将从elasticsearch获得的对象输出到输出文件的权限。虽然通常我会在输出中看到一条关于这一点的消息。“如果您使用在用户下启动的crontab-e
编辑crontab,则它是用户的crontab,cron将作为用户运行命令。---关于环境变量,我建议:--1。列出函数环境(脚本工作的地方)中的变量:export
——2.在空环境下运行shell:exec-cbash--norc--noprofile
--3.尝试在那里运行脚本。如果不起作用,则从1导出变量。在剧本中4.如果它与导出的变量一起工作,你可以逐个测试以找到所需的变量。我也有这个问题,你同时发现了什么吗?