为什么我收到执行二进制文件错误?

为什么我收到执行二进制文件错误?

我每 10 分钟就会收到一封电子邮件。因为我拥有 VPS。我不是 Linux 专家,正在学习管理 Linux 服务器。请帮我解决为什么我会收到这些电子邮件以及如何停止它们或如何修复我在 123-reg VPS 上运行 CentOS 6 的问题

主题:Cron /usr/lib64/sa/sa1 1 1 /usr/lib64/sa/sa1:第 11 行:/bin/date:无法执行二进制文件 /usr/lib64/sa/sa1:第 13 行:/bin/date:无法执行二进制文件

每小时发送一次以下电子邮件 主题:Cron run-parts /etc/cron.hourly /etc/cron.hourly/0anacron:

/etc/cron.hourly/0anacron: line 6: /bin/date: cannot execute binary file
/etc/cron.hourly/0anacron: line 6: [: =: unary operator expected

在 0anacron 中其:

#!/bin/bash
# Skip excecution unless the date has changed from the previous run 
if test -r /var/spool/anacron/cron.daily; then
    day=`cat /var/spool/anacron/cron.daily`
fi
if [ `date +%Y%m%d` = "$day" ]; then
    exit 0;
fi

# Skip excecution unless AC powered
if test -x /usr/bin/on_ac_power; then
    /usr/bin/on_ac_power &> /dev/null
    if test $? -eq 1; then
    exit 0
    fi
fi
/usr/sbin/anacron -s

答案1

0anacron错误:


这是正确的代码:

#!/bin/bash

# Skip excecution unless the date has changed from the previous run 
if test -r /var/spool/anacron/cron.daily; then
    day="$(cat /var/spool/anacron/cron.daily)"
fi
if [ "$(date +%Y%m%d)" == "$day" ]; then
    exit 0
fi

# Skip excecution unless AC powered
if test -x /usr/bin/on_ac_power; then
    /usr/bin/on_ac_power &> /dev/null
    if test $? -eq 1; then
        exit 0
    fi
fi
/usr/sbin/anacron -s

这解决了[: =: unary operator expected问题。下面是按相关性排序的代码更正失败列表,第一个是最糟糕的:

  • 在 bash 条件中你漏掉了一个等号。==而是=
  • `(反引号)已弃用,请$(command)使用`command`
  • 您用分号结束了第 8 行,但其实没有必要这么做。
  • 将代码统一缩进 2 或 4 个空格。

date错误:


你的/bin/date二进制文件似乎已损坏,你看到了吗关联

相关内容