可能重复:
crontab 不起作用的原因
我正在将一些脚本从旧机器迁移到 lucid ec2 机器。
我在我们的文件中获取文件~/.bashrc
并设置一些环境变量,但这些变量似乎无法从任何 cron 访问。
即使我的 cron 有一个,但. /home/username/.bashrc && /path/to/script
脚本似乎不知道另一个文件中获取的任何环境变量~/.bashrc
。
当我从命令行运行这些脚本时,它们都能成功运行。然而,当我尝试从 crontab 运行它们时,它们却失败了。
答案1
您的 cron 中的每一行都将由单独的进程执行。也许您应该在子 shell 中运行它们?* * * * * root (. /home/nigel/.bashrc && script)
。
此外,您的 .bashrc 通常会假设它是一个登录 shell(某些变量是假设的,如果没有这些变量,脚本可能会崩溃)。例如,您的 .bashrc 可能以这行开头,这意味着从 cron 运行时,.bashrc 中的任何内容都不会生效:
[ -z "$PS1" ] && return
你可能想尝试一个小脚本只是具有可变的设置。