如何使用正常运行时间来触发操作?

man*_*tty 3 linux perl shell-script

我想编写 shell 或 perl 代码,它们会在 x 天后给我通知。基本上在 SUSE Linux 服务器上,208 天后需要重新启动,否则系统会死机。这是已知的错误。所以为了避免这种情况,我希望在 8 天之前收到通知邮件,类似的事情......只是一个警报......

该脚本必须检查当前的正常运行时间,然后计算总共 208 天所需的剩余天数。希望这是有道理的。

Cod*_*ome 7

您可以使用 awk 轻松确定正常运行时间(以天为单位):

# Print days of uptime, or zero if less than 1 day.
uptime | awk '/days?/ {print $3; next}; {print 0}'
Run Code Online (Sandbox Code Playgroud)

您可以将其与命令替换结合使用,以根据结果执行您喜欢的任何操作。例如:

#!/bin/bash
days () { uptime | awk '/days?/ {print $3; next}; {print 0}'; }
UPTIME_THRESHOLD=200
if [ $(days) -ge $UPTIME_THRESHOLD ]; then
    : # Take some action.
fi
Run Code Online (Sandbox Code Playgroud)

显然,您采取的行动取决于您。您可以给自己发送消息,使用at命令安排重新启动,或者您认为有必要做的任何其他事情。

您可能还希望将此脚本设置为每日 cron 作业,以便在超过正常运行时间阈值时触发您定义的操作。如果您有 root 访问权限,您可以简单地将脚本放入/etc/cron.daily/,或者您可以设置您的个人 crontab 以每天调用此脚本一次。