cron
매일 실행(작업)하고, 시스템 가동 시간(일만)을 계산하고, 숫자가 정의된 값(예: 30)보다 큰 경우 이메일( uname -a
) 을 통해 시스템 정보를 보내는 스크립트를 생성해야 합니다 . 특정 주소(예: )까지의 일수입니다 [email protected]
.
나는 계산을 수행하고 조치를 취할 수 있는 날짜로 변환하려고 노력하면서 길을 잃었습니다. 사용을 시작하다
uptime | grep -o "up.*day"
명령을 내리다가 막혔습니다. CentOS 7.8을 사용합니다.
도움을 주셔서 미리 감사드립니다!
답변1
문서는 man uptime
이 조각을 제공합니다
-s, --since
- 시스템 시작 이후yyyy-mm-dd HH:MM:SS
포맷
이렇게 하면 카운트가 시작된 절대 날짜/시간을 얻을 수 있습니다.
uptime -s
2020-02-12 12:37:16
현재 날짜/시간에서 이 값을 빼면 일수가 나옵니다. (날짜 계산은 일반적으로 초 단위이므로 약간 복잡합니다.)
# Seconds at boot
secSince=$(date --date "$(uptime -s)" +%s)
# Seconds now
secNow=$(date +%s)
# Difference
secInterval=$((secNow - secSince))
# Convert to days
daysInterval=$((secInterval / (60*60*24)))
echo "$daysInterval day(s) uptime"
계산된 간격에 윤초가 추가되면 보고된 날짜는 현지 자정에서 1초씩 다를 수 있습니다.