定时任务执行 报错command not found 解决方案

11 篇文章 0 订阅
6 篇文章 0 订阅

写在前面

定时任务脚本出现command not found报错,解决方案。

所需知识

  1. 定时任务
  2. shell脚本
  3. 环境变量

问题复现

编写了一个很简单的脚本,查看一下网卡信息。

[root@ecm-98ce ~]# cat ipif.sh
ip a s eth0
echo "---"
ifconfig eth0

在这里插入图片描述
但是将这个脚本放到crontab下执行,就报错了

#crontab
[root@ecm-98ce ~]# crontab -e
crontab: installing new crontab
[root@ecm-98ce ~]# crontab -l
#4. show nic info and save in file
* * * * * /bin/sh /root/ipif.sh &>> /tmp/ipif.info

#报错
[root@ecm-98ce ~]# tail /tmp/ipif.info
/root/exercise/day26/ipif.sh: line 1: ip: command not found
---
/root/exercise/day26/ipif.sh: line 3: ifconfig: command not found

解决方式

方法1. 使用绝对路径的命令:

which ip ifconfig
/usr/sbin/ip
/usr/sbin/ifconfig

[root@ecm-98ce ~]# cat ipif.sh
/usr/sbin/ip a s eth0
echo "---"
/usr/sbin/ifconfig eth0

方法2. 重新加载环境变量:

#1 重写定义环境变量PATH
```shell
[root@ecm-98ce ~]# cat ipif.sh
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin #添加这行
ip a s eth0
echo "---"
ifconfig eth0

#2 重新加载环境变量

[root@ecm-98ce ~]# cat ipif.sh
#!/bin/bash
source /etc/profile #添加这行
ip a s eth0
echo "---"
ifconfig eth0

成功解决截图

在这里插入图片描述

原理

  • 在定时任务运行命令或脚本的时候,只能识别到/bin或/usr/bin目录下面的命令
  • 只要不在这些目录下面的命令,就要使用绝对路径或者重新定义下PATH环境变量
  • 有部分命令存在在/sbin上的命令,crontab无法默认使用,所以需要使用绝对路径重写PATH变量重新加载环境变量

环境变量中的路径变量PATH 它告诉系统在哪些目录下查找可执行文件的路径,实现可以使用相对路径的命令
ls,系统将自动在PATH中的路径进行查找,查找到/usr/bin/ls后执行

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当bash报错"command not found",这通常意味着系统无法找到你输入的命令。这可能是由于以下几个原因导致的: 1. 命令不存在:你输入的命令可能不存在于系统的可执行路径中。在Linux中,系统会在一系列目录中查找可执行文件。如果你输入的命令不在这些目录中,系统就会报错。你可以通过使用"which"命令来检查命令是否存在于系统的可执行路径中。 2. 命令没有正确安装:有候,你可能会遇到一个已经安装但仍然报错的命令。这可能是由于命令没有正确地安装或者安装过程中出现了错误。你可以尝试重新安装命令来解决这个问题。 3. 环境变量问题:在某些情况下,系统无法找到命令可能是由于环境变量设置不正确导致的。你可以通过检查你的PATH环境变量来确认是否包含了正确的路径。 为了解决这个问题,你可以尝试以下几个步骤: 1. 使用"which"命令:在终端中输入"which [命令名称]"来检查命令是否存在于系统的可执行路径中。如果该命令不存在,你可能需要重新安装或调整你的环境变量。 2. 重新安装命令:如果确定命令已经正确安装但仍然报错,你可以尝试将其重新安装。通常,你可以使用包管理器来安装命令。 3. 检查环境变量:使用"echo $PATH"命令来查看你的PATH环境变量是否包含了正确的路径。如果没有,请使用export命令来添加正确的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值