首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的shell脚本中的一个特定行('docker‘)不能作为cron作业运行?

为什么我的shell脚本中的一个特定行('docker‘)不能作为cron作业运行?
EN

Stack Overflow用户
提问于 2021-09-14 15:44:57
回答 1查看 71关注 0票数 0

已经把我的头发扯掉了…对于设置背景-我有一个码头容器运行无纸化ng,并试图自动备份。我正在运行rsync,将一个文件夹镜像到备份驱动器上。

我在/home/user/paperless-backup.sh上有一个简短的shell脚本

代码语言:javascript
复制
#!/bin/sh -i
# Paperless backup shell script

cd /home/user/paperless-ng 
docker-compose exec -T webserver document_exporter ../export
echo 'The paperless backup shell script job has run. Runtime:' >> /home/user/cron-test.txt
date >> /home/user/cron-test.txt

我使用crontab -e在我的用户cron作业列表中包括了以下行

代码语言:javascript
复制
SHELL=/bin/bash
* * * * * /home/user/paperless-backup.sh

所以:

  • 我知道cron选项卡运行良好,因为cron-test.txt的输出会很好地增加日期。如果我使用$ bash paperless-backup.sh作为bash脚本运行paperless-backup.sh,它将按预期执行,并备份新文件。

但是,当作为cron作业运行时,它似乎跳过了启动docker-compose…的行。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2021-09-14 16:08:00

正如@Barmar和@Ted所指出的,cron环境没有与我的用户相同的PATH变量,所以只需要显式地设置它。

添加了一个使用export PATH="$PATH:/path/to/container的行,现在看起来一切都很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69180842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档