昨日当年

你一双澄澈眼眸 便使我颠沛中毕生富有

Crontab 定时脚本中出现 command not found


原因是cron中仅传递少部分环境变量,如下

LANGUAGE=en_US.utf8:
HOME=/root
LOGNAME=root
PATH=/usr/bin:/bin
LANG=en_US.utf8
SHELL=/bin/sh
PWD=/root

而我想使用的命令文件在 /usr/local/bin/ 目录中,不在默认的环境变量中

解决办法是在定时脚本中加入PATH变量

#!/bin/bash
PATH="/usr/local/bin:/usr/bin:/bin"
# 脚本内容

如果定时任务不是脚本文件,而是命令的话,可以用绝对路径的去执行命令,例如 /snap/bin/certbot … 这样子。