Networking

如何使用 at 安排一個需要 Eth0 介面才能啟動和執行的命令?

  • August 28, 2019

此處需要使用命令安排在某個日期發送一些電子郵件at,但首先需要確保 Eth0 介面已啟動並執行。

我怎麼能那樣做?

目前使用已配置的 Mutt 郵件使用者代理。

只需添加資訊,如果 Eth0 在預定時刻關閉,它將不會發送電子郵件。

首先檢查 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

前任。

$at now + 30 days

at> eth0chk02
at> mutt -s "DestinyEmail@xxxx.com" < EmailBody

Ctrl+D

只需添加您可以通過多種不同方式設置日期和時間的資訊,如下所示:

> at 10:15 18 aug 2023,用於在 2023 年 8 月 18 日 10:15 發送的電子郵件,或

> now + 40 minutes, 比目前時間提前 40 分鐘發送。

要查看介面是 DOWN 還是 UP:

使用 GNU grep

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

輸出:

DOWN

或者

UP

或其他州…

引用自:https://unix.stackexchange.com/questions/537925