【发布时间】:2026-01-30 13:30:01
【问题描述】:
我在 Openstack 中使用 Crontab 执行 CLI,我创建了一个 shell 脚本来执行所有命令。 使用 ./ 在 root 中执行时我的 shell 工作
./myfile.sh
但是: 当我使用 crontab 时它不起作用 crontab 的命令:在 root 中
crontab -e
*/1 * * * * ./myfile.sh
myfile.sh 中的所有命令都可以工作,但是 Openstack CLI 的命令不起作用
例如:在 myfile.sh 中
1 echo "abc" > abc.txt
2 nova keypair-add --pub-key ~/.ssh/id_rsa.pub key_1
3 echo "def" > def.txt
4 nova floating-ip-create ext_net
1 & 3 效果很好,但是 2 & 4 不工作
【问题讨论】:
-
在 crontab 行中添加脚本的完整路径:
/home/user/.../myfile.sh。请注意,crontab 在非常小的环境中运行,因此您需要指明完整路径。 -
myfile.sh 正在运行,但 openstack 的命令不起作用
-
正如@fedorqui 所说,您需要完整路径,要么设置路径以包含 nova 所在的目录,要么在脚本中使用 nova 的完整路径(crontab 中脚本的完整路径不也不疼)
-
root 中的 nova,fedorqui 帮助我
-
nova 在 /nova 或 /root/nova 中?您需要做的就是在您的脚本中使用 nova 可执行文件的完整路径