在 crontab 中运行脚本--reboot:找不到命令

2023-11-30

我在我的根 crontab 中设置了一个脚本,该脚本应该使用以下命令重新启动我的机器reboot命令。

但是,我得到了reboot: command not found尽管事实上reboot位于 root 用户的路径中。

$ sudo su
$ which reboot
/sbin/reboot
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin

我的脚本:

#!/bin/bash

ping 8.8.8.8 -c 1 > /dev/null 2>&1; exit_code=$?
time_stamp=$(date +"%Y%m%d-%H%M")

if [ $exit_code -ne 0 ]; then
    (1>&2 echo "$time_stamp: failed with exit code $exit_code; restarting now")
    reboot
else
    echo "$time_stamp: ok"
fi

root 用户 crontab:

$ sudo crontab -l
58 * * * * /home/pi/github/ping-restart/ping-restart.sh >> /home/pi/github/ping-restart/cron.log 2>&1
$ sudo su
58 * * * * /home/pi/github/ping-restart/ping-restart.sh >> /home/pi/github/ping-restart/cron.log 2>&1

...是的,这只是一个临时的解决方法,同时我弄清楚为什么互联网不断下降。


cron 作业在非常基本的环境设置下运行;除此之外,默认的 PATH 只是/usr/bin:/bin。确实如此not使用用户的常规 shell 设置。有几种方法可以解决这个问题:

  • 在脚本中使用完整路径(即/sbin/reboot).
  • 使用前在脚本中设置PATHreboot (i.e. PATH=/usr/bin:/bin:/usr/sbin:/sbin).
  • 在 crontab 中的脚本条目之前设置 PATH(语法与脚本中的相同)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 crontab 中运行脚本--reboot:找不到命令 的相关文章

  • Bash:产生当父脚本退出时退出的子进程

    我想在 Bash 中生成多个子进程 但我希望父脚本保持运行 这样发送到父脚本的信号也会影响生成的子进程 这不会这样做 parent bash usr bin bash spawnedChildProcess1 spawnedChildPro
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • BASH 中的空函数

    我正在使用 FPM 工具创建 deb 包 此工具在从支持的文件中删除包之前 之后创建 不幸的是FPM生成的bash脚本包含这样的函数 dummy 该脚本退出时出现错误 语法错误 意外 BASH 不允许空函数吗 哪个版本的 bash linu
  • 使用 IFS bash 进行 CSV 解析:选择“;”作为分隔符

    我有一个包含 130 列的 CSV 我需要用它来做 3 个 csv 我用 while 和 IFS 循环 因为我需要对每一行的变量进行一些处理 这是我所做的 while IFS read my 130 vars what i do with
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 捕获并邮寄 bash 脚本错误

    我有一个脚本 每晚在 cron 中运行 为网络上的多个主机备份一些 postgres 数据库 我有一种方法可以通过利用退出状态来收到脚本失败的警报 但它没有告诉我失败的原因 根据以下代码 我如何捕获脚本运行时发生的任何错误 并将其通过电子邮
  • Bash 的源命令无法处理从互联网上卷曲的文件

    我正在尝试使用curl从互联网获取脚本文件 如下所示 source lt curl url echo done 我看到的是 完成 得到了回响before卷曲甚至开始下载文件 这是实际的命令和输出 bash 3 2 source lt cur
  • 独特的 Linux 文件名,可按时间排序

    以前我用的是uuidgen http man7 org linux man pages man1 uuidgen 1 html创建唯一的文件名 然后我需要通过 bash 脚本按日期 时间迭代该文件名 从那时起 我发现简单地通过 ls l 循
  • Unix 中的访问时间是多少

    我想知道访问时间是多少 我在网上搜索但得到了相同的定义 读 被改变 我知道与touch我们可以改变它 谁能用一个例子来解释一下它是如何改变的 有没有办法在unix中获取创建日期 时间 stat结构 The stat 2 结构跟踪所有文件日期
  • 获取 Windows 窗体应用程序的执行目录的路径

    我想获取 Windows 窗体应用程序的执行目录的路径 即可执行文件所在的目录 有谁知道 NET 中的内置方法可以做到这一点 在VB NET中 Dim directory as String My Application Info Dire
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 在 vimrc 中切换匹配

    我的 vimrc 文件中有以下几行 hi ExtraWhitespace cterm NONE ctermbg green ctermfg green guibg green guifg green match ExtraWhitespac
  • “config”脚本存在于系统或 Homebrew 目录之外

    运行 brew doctor 并出现一些错误 我按照此链接中的建议设法解决了路径问题 如何修改 Homebrew 的 PATH https stackoverflow com questions 10343834 homebrew want
  • 如何在 Bash 脚本中查找数字的阶乘?

    在 shell 脚本中如何查找数字的阶乘 seq s 1 500 bc
  • grep 彩色线条

    我编写了一个简单的 PHP shell 脚本 它解析文件并输出某些元素 它产生大量的输出 采用不同的 bash 颜色 绿色表示正常 黄色表示警告 红色表示错误等 在开发过程中我想过滤掉一些行 例如 所有包含红色文本的行 我可以使用grep
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • Yii 框架:控制器/操作 url 和参数

    在我的申请中 我有ApiController with actionUsers 所以在 YII 中路径变成api users 现在为了获取某些用户信息 我使用以下路径api users id 10其中 10 是用户 ID id路径的一部分基
  • Bash 目录上的 For 循环

    快速背景 ls src file1 file2 dir1 dir2 dir3 Script bin bash for i in src do if d i then echo i fi done Output src dir1 src di
  • 如果文件修改日期早于 N 天

    此问题涉及在文件的修改日期早于这么多天时采取行动 我确信创建日期或访问日期会类似 但对于修改日期 如果我有 file path name to some file N 100 for example N is number of days
  • Linux 上的“软/硬 nofile”是什么意思

    当我尝试在RedHat EL5上安装软件时 我得到了错误 软 硬nofile的期望值是4096 而默认值是1024 我设法增加了这个数字 但我不知道参数是什么 他们指的是软链接和硬链接吗 我改变的方法是 a 修改 etc security

随机推荐

  • 无法在 Heroku 上“运行”

    我已经将 Clojure 应用程序部署到 Heroku 当我运行 请求它时 我收到错误 http glowing planet 168 herokuapp com 所以现在我想启动一个 REPL 看看是否可以获得更多信息 但是当我尝试时我得
  • 从 Fortran 调用 C 函数,其中 C 函数名称最初是从 C 传入的

    由于不相关的原因 我需要将 C C 函数名称传递到 Fortran 子例程中 该子例程又调用该 C 函数 我发现我可以成功地将函数名称传递到 Fortran 子例程中 在该子例程中我可以调用正确的 C 函数 然而 C 函数的参数在这次调用中
  • Java计算器不执行if语句[重复]

    这个问题在这里已经有答案了 我对编程比较陌生 最近开始学习 Java 以便进入 Android 编程 我以为我会创建一个非常简单的计算器来练习 但似乎我的 if 语句不起作用 import java util Scanner public
  • 即使我获得了类窗口的句柄,BringWindowToTop 也不起作用

    我用以下方法注册我的班级 BOOL CNDSClientDlg InitInstance Register Window Updated on 16th Nov 2010 Subhen Register our unique class n
  • 调整大小的黑色画布不会随着时间的推移完全褪色为黑色

    我有一块黑色画布 里面画着东西 我希望里面绘制的东西随着时间的推移 按照绘制的顺序 先进先出 逐渐变成黑色 如果我使用尚未调整大小的画布 则此方法有效 调整画布大小时 元素会褪色为灰白色 问题 调整画布大小后 为什么白色斑点没有完全褪色为黑
  • 如何在ViewModel中玩Storyboard?

    我在 View 中定义了一个故事板
  • 海量设备/节点的距离计算

    I have N移动设备 节点 比如 100K 我定期获取它们的位置 纬度 经度 值 一些设备 逻辑连接 到大致M其他设备 比如 10 个 我的程序定期比较每个设备与其逻辑连接的设备之间的距离 并确定该距离是否在阈值内 例如 100 米 我
  • 在 iOS 中单击 UIButton 时如何将项目插入到 UITableView

    我一直在练习 tableViews 但我不知道如何在单击按钮时插入新项目 这就是我所拥有的 BIDViewController h import
  • 有什么作用!! R 中的运算符均值

    有人可以解释一下我们需要什么吗 or 运营商来自rlang 我尝试学习more关于准引用但没有得到任何东西 我已经在 Stack 上找到了几篇关于 curly curly 运算符的帖子 并且了解到我们使用 当我们将数据帧的变量 或对象的其他
  • 尝试编写一个简单的轮播

    我正在尝试构建一个简单的轮播 我知道有很多 但我更喜欢尝试找出答案 这是我的轮播代码 div class amnavigation div class previous lt div ul li icon li li icon li li
  • 将静态库答案放在 flash 部分的开头

    我正在使用 atmelstudio 编译固件映像 并希望将静态库 包括 gnu 的 libc a 和 libgcc a 中的函数放在 text 部分的开头 后面的 text 属于我的项目源代码 现在发生的情况恰恰相反 这是我的链接器脚本 A
  • 使用未知的编码键和值进行 Swift 解码[重复]

    这个问题在这里已经有答案了 我想从服务器解码以下对象 USD 6385 74 JPY 715249 73 EUR 5582 36 但我想使用具有未知键和值的可解码结构 这可能吗 Regards Spyros 你可以试试 let res tr
  • Node.js 中的计时器在自己的线程上运行吗?

    我在这里有点困惑 我知道 Javascript 是一种单线程语言 但在阅读事件循环时 我知道 在 setTimeout 或 setInterval 的情况下 JavaScript 会调用浏览器提供的 Web API 该 API 会生成一个新
  • ARM 指令 ldrex/strex 是否必须对缓存对齐的数据进行操作?

    在 Intel 上 CMPXCHG 的参数必须与缓存行对齐 因为 Intel 使用 MESI 来实现 CAS 在 ARM 上 ldrex 和 strex 对独占保留颗粒进行操作 需要明确的是 这是否意味着在 ARM 上操作的数据不必进行缓存
  • 根据 SQL 中设置的规则过滤列中的行

    我是 SQL 新手 我想根据设定的规则过滤列上的值 Group ID 1 09239820 2 2872498938 2 1267 3 23219823983 3 267839236 4 33287442 我想用字母替换 ID 列中的第 1
  • Java - Google API - 发布文档

    我在使用 Google 文档 API 上传信息时遇到问题 任务是上传文档 然后在上传后立即发布 我已经解决了第一部分 得到一个DocsService客户 通过以下方式验证我自己的身份client setUserCredentials use
  • OpenGL到底是如何进行透视校正线性插值的?

    如果线性插值发生在 OpenGL 管道的光栅化阶段 并且顶点已经转换到屏幕空间 那么用于透视正确插值的深度信息从何而来 谁能详细描述 OpenGL 如何从屏幕空间基元到具有正确插值的片段 顶点着色器的输出是four分量向量 vec4 gl
  • Jquery UI 对话框代替 javascript 确认

    我有一堆带有确认的验证 javascript 进程 我想使用 jquery ui 对话框 但我需要为其余验证过程返回 true 例如 var where to coupon confirm pm info msg 013 if where
  • 如何在独立模式下调试webdriverio?

    http webdriver io guide getstarted modes html 尝试使用 Chromedriver 调试 webdriverio 测试时我简直要疯了 您根本无法单步调试代码 因为 webdriverio 命令是异
  • 在 crontab 中运行脚本--reboot:找不到命令

    我在我的根 crontab 中设置了一个脚本 该脚本应该使用以下命令重新启动我的机器reboot命令 但是 我得到了reboot command not found尽管事实上reboot位于 root 用户的路径中 sudo su whic