我正在尝试运行一串nohup
命令来获取服务器统计信息。但是,我得到一个错误“没有这样的文件或目录”*。请注意,3个nohup
调用嵌入在通过cron
作业执行的脚本中。第一个nohup
工作,但其他2个返回错误。具有讽刺意味的是,当在不同的服务器上运行时,该脚本工作正常。
- 命令
nohup vmpstat -a -n 60 1000 > myvmstats
- (works)
nohup mpstat -P ALL 1 1000 > mympstats
- (返回:nohup无法运行
mpstat
命令:没有这样的文件或目录)
nohup iostat -t -x 60 1000 >myiostats
- (返回:nohup无法运行
iostat
命令:没有这样的文件或目录)
知道出什么事了吗
3条答案
按热度按时间2mbi3lxu1#
我认为你应该给予你程序的相对/绝对路径
举例来说:
nohup ./****.sh > /home/user/test.txt
wz8daaqr2#
从命令行运行而不是由
cron
运行的脚本的常见问题是“环境”。有许多关于SO的问题,其中有这方面的例子,包括:出于调试目的,向cron-run脚本添加一个命令/行,它执行以下操作:
检查PATH是否包含您所期望的内容,特别是它是否包含安装三个程序中的每一个的目录。并检查您是否从命令行运行了预期的程序:
这是一个合理的猜测,即当您的脚本由
cron
运行时,这两个“缺失”命令不在PATH上的目录中。而cron
为您提供了一个裸露的最小环境;在这方面它完全不同于at
。另请参阅:
5m1hhzi43#
我在尝试编写python脚本时遇到了这个。
如果有人遇到这种情况,如果jeremyxu(10年前)的上述答案不能解决你的问题,Linux还需要python文件夹的完整路径。
1.获取完整路径
其中-Python3
sudo nohup /usr/local/bin/python3.10 script.py