我在游牧民族中有这个定期任务。目的是每5分钟在主机nomad3
上运行一个脚本。我还包括了下面脚本的内容。
job "periodic" {
datacenters = ["dc1"]
type = "batch"
periodic {
cron = "*/5 * * * * *"
prohibit_overlap = true
time_zone = "UTC"
}
group "periodic" {
count = 1
restart {
interval = "5m"
attempts = 10
delay = "25s"
mode = "delay"
}
task "cronjob-test" {
driver = "exec"
constraint {
attribute = "${node.unique.name}"
value = "nomad3"
}
config {
command = "/bin/bash"
args = ["/usr/local/bin/cronjob-test.sh"]
}
resources {
cpu = 100 # Mhz
memory = 10 # MB
network {
mbits = 10
# Request for a dynamic port
port "uptime" {
}
}
}
}
}
}
,cronjob-test.sh
包含:
#!/usr/bin/env bash
DATE=$(date '+%F-%s')
touch /tmp/$DATE
该脚本位于游牧主机nomad3
上。我应该在/tmp
中看到一个文件,其中包含我在bash脚本中指示的格式,但我没有看到这个。需要帮助了解正在发生的事情。
答案 0 :(得分:1)
以下脚本将在/ tmp: -
下创建一个0字节的文件DATE=$(date '+%F-%s')
touch /tmp/$DATE //file name would be 2018-04-04-%s
检查您的DATE变量是否正确设置。只需添加一个像$ DATE这样的echo命令,检查是否接受了。
答案 1 :(得分:0)
看来我正在使用chrooted的exec
驱动程序。我尝试使用raw_exec
并且它有效。然后,我通过在配置中的exec
中添加目标目录来重新尝试使用chroot_env
。
答案 2 :(得分:-1)
config {
command = "/bin/bash"
args = ["-c","/usr/local/bin/cronjob-test.sh"]
}