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

目录

  • 写在前面
    • 所需知识
  • 问题复现
  • 解决方式
    • 方法1. 使用绝对路径的命令:
    • 方法2. 重新加载环境变量:
    • 成功解决截图
  • 原理

写在前面

定时任务脚本出现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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/687574.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

煤矿防爆气象传感器

TH-WFB5随着工业技术的不断发展,煤矿作为我国能源领域的重要组成部分,其安全生产问题一直备受关注。在煤矿生产过程中,井下环境复杂多变,瓦斯、煤尘等易燃易爆物质的存在使得井下安全工作尤为重要。为了提高煤矿生产的安全性&…

【桌面应用开发】Rust+Tauri框架项目打包操作

1.项目npm install下载项目依赖(需要配置好node.js环境) 可参考:https://blog.csdn.net/m0_64346565/article/details/138319651 2.自定义图标(项目初始化开始第一次需要配置生成,后面可跳过这一步骤) Ta…

Selenium定位方法汇总及举例

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

bcrypt.dll文件丢失怎么办?bcrypt.dll怎么修复?

在计算机系统运行过程中,如果发现无法找到或缺失bcrypt.dll文件,可能会引发一系列的问题与故障。首先,由于bcrypt.dll是系统中一个重要的动态链接库文件,它的主要功能可能涉及到系统核心服务、应用程序支持或者特定功能模块的运行…

activiti 工作流基本使用

Activiti 介绍 Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。 官方是这样介绍 activiti的: Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&…

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路+配套代码+后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路+可执行代码+后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路+可执…

Kubernetes: 从零开始理解K8s架构

目录 一、简介 二、Kubernetes 架构原理 2.1 控制平面 2.2 Node 组件 2.3 Container Image 2.4 kubelet 2.5 Cluster 三、服务调用 四、总结 一、简介 Kubernetes 是一个开源的容器编排系统,用于自动化应用容器的部署、扩展和管理。它是Google基于Borg…

python中的数据可视化:二维直方图 hist2d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python中的数据可视化: 二维直方图 hist2d() 选择题 关于以下代码输出结果的说法中正确的是? import matplotlib.pyplot as plt import numpy as np x np.random.normal(0, 1, …

IQOO Neo7/7SE/PAD2解BL+完美root权限+LSPosed框架-可虚拟定位

QOO Neo7/Neo7SE/Pad/Pad2搭配的是天玑8200系列芯片,继810/920以后再次支持解锁BL,这给我们的玩机带来了很多可能。解锁BL有什么用途呢?最常见的就是获取root权限,刷入各种各种的magisk模块,使用自己喜欢的插件等&…

QT--5

1> 将网络聊天室重新实现一遍 服务器端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ser new QTcpServer(this); }Widget::~Widget() {delete ui; }vo…

第七届精武杯部分wp

第一部分:计算机和手机取证 1.请综合分析计算机和手机检材,计算机最近一次登录的账户名是 答案:admin 创建虚拟机时直接给出了用户名 2. 请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是 答案&#xff1a…

【赠书活动第4期】《Rust编程与项目实战》

赠书活动 《Rust编程与项目实战》免费赠书 3 本, 收到赠书之后,写一篇 本书某一节内容 的学习博客文章。 可在本帖评论中表示参加,即可获得赠书,先到先得。学习心得博客链接,后面有空发上来。 赠书截止日期为送出3…