我有这份报告,但我不明白为什么它不认识gradle命令..。我是新来的,谢谢你的帮助!
From ubuntu@vps-a29e040b.vps.ovh.net Sun Dec 13 04:02:01 2020
Return-Path:
X-Original-To: ubuntu
Delivered-To: ubuntu@vps-a29e040b.vps.ovh.net
Received: by vps-a29e040b.vps.ovh.net (Postfix, from userid 1000)
id EF0278157A; Sun, 13 Dec 2020 04:02:01 +0000 (UTC)
From: root@vps-a29e040b.vps.ovh.net (Cron Daemon)
To: ubuntu@vps-a29e040b.vps.ovh.net
Subject: Cron ./myscript.sh
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
Message-Id: <20201213040201.EF0278157A@vps-a29e040b.vps.ovh.net>
Date: Sun, 13 Dec 2020 04:02:01 +0000 (UTC)
TERM environment variable not set.
./myscript.sh: line 4: gradle: command not found发布于 2020-12-13 12:30:29
cron相当容易使用,但它有一些您应该注意的特性。以下是一个简短的总结:
cron作业具有不同的环境()
cron作业运行的环境与交互式shell不同。这条路是环境的一部分。这可能是问题的原因:gradle的路径可能不在cron使用的路径中。这可能会导致任何cron作业的问题。
解决方案:通常可以通过对所有命令使用完整路径规范来解决这一问题。而不是这样:
0 2 * * * gradle 用这个:
0 2 * * * /full/path/to/gradlecron不了解资源可用性在尝试运行作业之前,cron不会验证运行作业所需的资源是否可用。在启动时(即使用cron工具)运行D14作业时,通常会遇到这种情况。这种情况的一个例子是在启动时运行的作业&需要访问网络资源。
解决方案:通常通过在作业之前添加sleep X命令来解决此问题:
@reboot ( /bin/sleep 30; /home/myhome/myprog.sh )cron作业中的运行时错误不报告cron无法访问您的终端,所以stderr转到/dev/null。如果您想看到错误(而且您总是这样做!),您只需要将stderr重定向到一个文件--这是一种方法:
0 2 * * * /home/myhome/dosomething.sh > /home/myhome/cronjoblog 2>&1这将将所有stdout (1)重定向到/home/myhome/cronjoblog,并将stderr (2)重定向到stdout (2>&1)。所有输出都进入您的cronjoblog文件。
https://unix.stackexchange.com/questions/624219
复制相似问题