aws --version
我可以在脚本和 cli 中运行该命令。但如果我将此命令放入 crontab 中,它就不起作用。
定时任务:
50 12 * * * aws --version > ~/yolo.swag
错误:
/bin/sh: 1: aws: not found
aws 命令位于 bash 脚本中。当我在 cron 中运行脚本时,我收到相同的错误消息。如何让脚本正常运行命令?
答案1
您需要指定aws
可执行文件的完整路径:
50 12 * * * /usr/local/bin/aws --version > ~/yolo.swag
答案2
将此代码放在要执行到 crontab -e 的命令行之前
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
答案3
问题是登录环境和cron运行的环境不一样。所以基本上环境没有设置,即所有rc
文件、别名、用户定义的函数在运行时都不存在于 cron 中。
一种解决方案是获取设置所需路径和别名的 profile/rc 文件。
* 5 * * * * $HOME/.profile; $HOME/.bashrc ; <your command>