定时任务执行 报错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.mzph.cn/news/835287.shtml

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

相关文章

Neo4j 之安装和 CQL 基本命令学习

正常使用结构化的查询语言 SQL(Structured Query Language)较多一些,但是像 Neo4j 这种非结构化的图形数据库来说,就不得不学习下 CQL(Cypher Query Language)语言了。如果你之前学过 《离散数学》或《图论…

开源高性能的分布式时序数据库:Lindb

Lindb:为大数据时代量身打造的高性能时序数据库,让海量数据存储与实时分析触手可及。- 精选真开源,释放新价值。 概览 Lindb 是一款开源的分布式时序数据库,它以其高性能和可伸缩性在海量数据存储及快速查询计算方面展现出独特的…

Vue 中动态与静态处理 Element UI/Element Plus 组件禁用状态样式

目录 一、静态样式修改 - 使用 ::v-deep 穿透组件样式二、选择器的优先级和匹配顺序三、动态添加样式 - 使用 Vue 实例属性(非推荐)四、区别总结五、应用场景总结 本文主要探讨在 Vue.js 项目中,特别是搭配 Element UI 或 Element Plus 组件库…

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 4

第十三章 车联网 数字化设备正变得越来越普遍并且相互联系。这些设备向数字生态系统智能部分的演进创造了迄今为止尚未解决安全问题的新颖应用。一个特定的例子是车辆,随着车辆从简单的交通方式发展到具有新的感知和通讯功能的智能实体,就成为智能城市的…

Leecode438:找到字符串中所有字母异位词

做这道题的过程中遇到了很多问题,但其实都是自己不够仔细导致的。这道题的思想归根结底就是维护一个滑动窗口,然后在滑动的过程中不断维护不断判断,直到移到最后端然后返回一个维护好的list列表。

调试代码问题汇总

1.最常见的就是数据库密码不对。根据调试视频将你的数据库密码设置正确,数据库密码是数字的优先直接连如果不成功可以加个双引号或者单引号。 提示:java.sql.SQLException: Access denied for user rootlocalhost (using password: YES) 2.原本配置好的…

Three.js基础练习——渲染一个立方体

1.学习内容参考了 three.js入门教程--零基础也能学会_threejs菜鸟教程-CSDN博客 本章内容包含渲染立方体,并配合ui工具食用~ 2.效果图 import * as THREE from three import * as dat from dat.gui import { OrbitControls } from three/addons/controls/OrbitC…

Istio中的全局限流方案

Istio中的全局限流方案 在k8s网格(istio)环境中, 可以通过创建Envfoyfilter的方式来配置限流。 在istio官方文档中,提供了两种限流方式: 本地限流全局限流 本地限流的细节这里不再赘述, 主要讲解全局限流的配置方式…

解决 git 因输入密码错误而导致的报错无法推送问题

报错内容如下: > git push origin master:master fatal: unable to access https://gitee.com/spring-in-huangxian-county/web-tts-vue.git/: OpenSSL SSL_connect: Connection was reset in connection to gitee.com:443 出错原因 根本原因是本机存储的 账户…

LeetCode题练习与总结:反转链表Ⅱ--92

一、题目描述 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#…

c++ poencv Project2 - Document Scanner

惯例先上结果图&#xff1a; 本文提供一种文本提取思路&#xff1a; 1、首先图像预处理&#xff1a;灰度转换、高斯模糊、边缘提取&#xff0c;膨胀。 Mat preProcessing(Mat img) {cvtColor(img, imgGray, COLOR_BGR2GRAY);GaussianBlur(imgGray, imgBlur, Size(3, 3), 3, …

uni-app(三):离线打包与插件引用(Android)

离线打包与插件引用 1.下载Android离线SDK2.使用Android Studio打开离线打包项目并更新Gradle3.解决报错4.构建5.配置AppKeya.查看证书b.申请AppKeyc.配置AppKey 6.生成本地打包App资源7.拷贝App资源到Android项目中8.修改 appid9.修改Android项目配置文件10.下载证书并配置11.…

海康威视漏洞综合利用工具-HikvisionExploitGUI

0x01 前言 在攻防演练中&#xff0c;海康威视一直是红队攻击的重点目标之一&#xff0c;红队通常需要快速打点&#xff0c;尽快发现系统中的漏洞&#xff0c;并利用它们获取权限。 0x02 工具简介 工具支持检测海康威视综合安防管理平台多种常见漏洞。提供直观友好的图像化界…

区块链中的加密算法及其作用

区块链技术以其去中心化、不可篡改、透明公开的特性&#xff0c;在全球范围内引发了广泛的关注和讨论。其中&#xff0c;加密算法作为区块链技术的核心组成部分&#xff0c;对于维护区块链网络的安全、确保数据的完整性和真实性起到了至关重要的作用。本文将详细介绍区块链中常…

LLM 可以从简单数据中学习吗?

在 10 月份的一次周会结束后&#xff0c;我提到 SFT 训练后的 Loss 曲线呈现阶梯状&#xff0c;至于为什么&#xff0c;并没有人有合理的解释&#xff0c;加上当时的重心是提升次日留存率&#xff0c;Loss 曲线呈现阶梯状与次日留存率的关系还太远&#xff0c;即使有问题&#…

torch.searchsorted

torch.searchsorted 官方文档链接&#xff1a;torch.searchsorted — PyTorch 2.3 documentation 该函数用于在已排序的序列中查找要插入的值的位置&#xff0c;以保持序列的顺序&#xff0c; torch.searchsorted(sorted_sequence, values, *, out_int32False, rightFalse, s…

Python - 金三银四心路历程 之 数据结构与算法 刷题

目录 一.引言 二.心路历程 三.刷题经历 四.刷题历程 五.总结 一.引言 <夜深人静写算法> 是 23 年 12 月底博主打算跳槽时开始做刷题准备做的专栏&#xff0c;前后准备了大约一个月&#xff0c;刷题完毕后简单准备了项目和简历后就开始加入找工作大军了&#xff0c;最…

【机器学习】逻辑化讲清PCA主成分分析

碎碎念&#xff1a;小编去年数学建模比赛的时候真的理解不了主成分分析中的“主成分”的概念&#xff01;&#xff01;但是&#xff0c;时隔两年&#xff0c;在机器学习领域我又行了&#xff0c;终于搞明白了&#xff01;且看正文&#xff01;再分享一个今天听到的播客中非常触…

Web3 Tools - Base58

Base58编码 Base58编码是一种用于表示数字的非常见的编码方法。它通常用于加密货币领域&#xff0c;例如比特币和其他加密货币的地址表示。 什么是Base58编码&#xff1f; Base58编码是一种将数字转换为人类可读形式的编码方法。与常见的Base64编码不同&#xff0c;Base58编码…

JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测

JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测 目录 JCR一区 | Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 基本介绍 Matlab实现1D-2D-GASF-CNN-GRU-MATT的多通道输入数据分类预…