如何使用“at”安排需要“Eth0”接口启动并运行的命令?

如何使用“at”安排需要“Eth0”接口启动并运行的命令?

这里需要使用at命令安排在某个日期发送一些电子邮件,但首先需要确保 Eth0 接口已启动并正在运行。

我怎么能这么做呢?

当前使用已配置的 Mutt 邮件用户代理。

只需添加以下信息:如果 Eth0 在预定时刻关闭,则不会发送电子邮件。

答案1

查看接口是 DOWN 还是 UP:

使用 GNU grep

ip link show | grep "eth0" | grep -oP "(?<=state )(\w+)"

输出:

DOWN

或者

UP

或其他状态...

答案2

首先检查 Eth0(有线)连接是否正在运行:

$ nano eth0ch.sh

#!/bin/bash
if grep -Fxq "up" /sys/class/net/eth0/operstate
        then echo "Eth0 Up"
        else echo
fi
exit 0

$ sudo chown root:root eth0ch.sh

$ chmod +x eth0ch.sh

将其复制到/usr/bin

$ sudo cp eth0ch.sh /usr/bin/eth0ch

如果出现故障,则第二次停止:

$ nano eth0chk02.sh

#!/bin/bash

until [[ -n "$(eth0chk)" ]]; do
sleep 1
done
exit 0

$ sudo chmod +x eth0chk02.sh

$ sudo chown root:root eth0chk02.sh

复制到/usr/bin下

$ sudo cp eth0ch.sh /usr/bin/eth0chk02

要开始安排这些电子邮件的发送,请运行它:

$at Scheduletime

前任。

现在 $ + 30 天

at> eth0chk02
at> mutt -s "[email protected]" < EmailBody

Ctrl+D

只需添加您可以通过多种不同方式设置日期和时间的信息,例如:

> at 10:15 18 aug 2023,要在 2023 年 8 月 18 日 10:15 发送电子邮件,或者

> now + 40 minutes,比当前时间提前 40 分钟发送。

相关内容