작업을 실행하기 위해 가동 시간을 어떻게 사용할 수 있나요?

작업을 실행하기 위해 가동 시간을 어떻게 사용할 수 있나요?

x일 후에 알림을 제공하는 쉘 또는 펄 코드를 작성하고 싶습니다. 기본적으로 SUSE Linux 서버에서는 208일 후에 재부팅이 필요합니다. 그렇지 않으면 시스템이 정지됩니다. 이것은 알려진 버그입니다. 그래서 이를 방지하기 위해 8일 전에 알림 메일이 오길 원합니다....그냥 알림..

스크립트는 현재 가동 시간을 확인한 다음 총 208일에 필요한 남은 일수를 계산해야 합니다. 이것이 의미가 있기를 바랍니다.

답변1

awk를 사용하면 일 단위의 가동 시간을 쉽게 확인할 수 있습니다.

# Print days of uptime, or zero if less than 1 day.
uptime | awk '/days?/ {print $3; next}; {print 0}'

이를 명령 대체와 함께 사용하여 결과에 따라 원하는 작업을 수행할 수 있습니다. 예를 들어:

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

분명히, 당신이 취하는 행동은 당신에게 달려 있습니다. 자신에게 메시지를 보내고 재부팅을 예약할 수 있습니다.~에명령, 또는 당신이 해야 한다고 생각하는 모든 것.

가동 시간 임계값이 초과되면 정의된 작업이 트리거되도록 이 스크립트를 일일 크론 작업으로 설정할 수도 있습니다. 루트 액세스 권한이 있는 경우 간단히 스크립트를 에 놓거나 /etc/cron.daily/개인 crontab을 설정하여 이 스크립트를 하루에 한 번 호출할 수 있습니다.

답변2

CodeGnome 답변에서 영감을 받아 8시 30분에 컴퓨터를 켠 후 알림이 표시되는 Mac용 작은 스크립트를 만들었습니다. 또한 이를 매분 실행하도록 cron을 구성해야 했습니다.

#!/bin/bash
timeup () { uptime | awk  '{print $3}'; }
UPTIME="8:30,"
if [ $(timeup) == $UPTIME ]; then
    osascript -e 'tell app "Finder" to display dialog "8:30 uptime! Go Home!"' &
    osascript -e 'display notification "8:30 uptime! Go Home!" with title "Go Home!!"' &
fi

관련 정보