Debian11 上的 Cron 错误 cd / && run-parts --report /etc/cron.hourly

Debian11 上的 Cron 错误 cd / && run-parts --report /etc/cron.hourly

我刚刚在我的 VPS 上重新安装了新的操作系统,即 Debian 11。

现在,每当自动 cron.hourly 运行时,我都会收到以下错误

/sbin/run-parts: line 5: 127011 127011: syntax error in expression (error token is "127011")

当我检查文件时/sbin/run-parts

我看到下面的代码:

#!/bin/bash

parameters="$@"
ip=$(hostname -i)
**RANDOM=${ip//./}**
test -z "${parameters##*/etc/cron.*}" &&
        sleep $((RANDOM % 3600))

exec /bin/run-parts "$@"

第 5 行,**RANDOM=${ip//./}** 是问题所在,第 5 行可能存在什么问题?

答案1

这个脚本有点可疑... (正如所提到的,变量RANDOM不能被星号字符包围,我猜你把它放在这里是为了突出显示错误,但无论如何这其中存在扭曲的逻辑)

  • 首先,vanilla Debian 11run-parts在目录内有程序/usr/bin(或其内的符号链接/bin)。它不是/sbin/run-partsDebian 11。
  • 第二个run-parts是可执行 ELF 文件,而不是 bash 脚本
  • 最后,这个脚本真的很奇怪,我怀疑它是不是 Debian 官方的脚本

PS 如果这是您的脚本,请不要使用保留变量名,例如RANDOM,至少将其重命名为iRANDOM,但请记住,POSIX 表示所有大写变量都应该仅用于环境。

相关内容