【发布时间】:2020-09-05 12:01:48
【问题描述】:
我正在使用https://*.com/a/42955871/308851,它可以从命令行运行,但不能从 cron 运行。我什至尝试使用env -i 运行脚本,但它仍然有效。
#!/bin/bash
filename=$(date '+%Y-%m-%d').gz
docker exec -t elastic_db.1.$(docker service ps -f 'name=elastic_db.1' elastic_db -q --no-trunc | head -n1) mysqldump example |gzip -9 > /container/$filename
docker exec -t elastic_drupal.1.$(docker service ps -f 'name=elastic_drupal.1' elastic_drupal -q --no-trunc |head -n1) rclone --config /etc/rclone.conf move /app/$filename example:example/dump/
当从 cron 运行时,这会压缩一个 0 字节的文件,但在其他情况下工作得很好。我做错了什么?
【问题讨论】:
-
cron 作业在一个非常小的环境下运行,包括一个可能不包括
docker所在目录的PATH。我不认为env -i完全模拟了这一点。尝试在您的 crontab 或脚本中显式设置PATH。此外,每当 cron 作业出现问题时,请尝试使用2>/tmp/cron-job.log之类的内容捕获错误输出。