Я новичок в MacOS. В нашей среде мы используем MacOS и настраиваем Time Machine для резервного копирования на удаленный диск.
Большая часть MacOS - это либо Mojave, либо Catalina.
У меня есть скрипт, который проверяет, есть ли резервные копии сделано полностью, и в зависимости от статуса он затем снимает уведомления по электронной почте.
С тех пор, как мы обновили MacOS до высокого уровня Sierra или Catalina, мы получаем ложные уведомления по электронной почте, даже если машина времени завершает резервное копирование, мы получаем уведомление так как «Машина времени не завершила резервное копирование на этом Ма c!»
Я добавил «Машина времени» и «Терминал» в разделе «Полный доступ к диску» в Системных настройках.
I Прилагаю свой скрипт для справки.
Жду некоторых указателей.
Спасибо.
#!/bin/bash
# This script checks the Time Machine results file on a Mac, and reports if a backup has completed within a number of minutes of the current time.
critMinutes=1440;
FROM="me@example.com>"
RCPT="you@example.com"
subject="Time Machine Backup"
thishost=`hostname -s | sed -e 's/^[^.]*\.//'`
# Check to see if we're running Mavericks as Time Machine runs a little differently
osVersion=`sw_vers -productVersion | grep -E -o "[0-9]+\.[0-9]+"`
isMavericks=`echo $osVersion '== 10.9' | bc -l`
isYosemitePlus=`echo $osVersion '< 10.2' | bc -l`
currentDate=`date +%s`
if [ $isMavericks -eq 1 ] || [ $isYosemitePlus -eq 1 ]
then
# 10.9+ Check
lastBackupDateString=`tmutil latestbackup | grep -E -o "[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}"`
if [ "$lastBackupDateString" == "" ]
then
lastBackupDateString=`defaults read /Library/Preferences/com.gfi.MaxRMM.TimeMachine LastBackup`
if [ "$lastBackupDateString" == "" ]
then
echo "CRITICAL - $thishost Time Machine has not completed a backup on this Mac!" | mail -s "Time Machine Backup" $RCPT
exit 1002
fi
fi
lastBackupDate=`date -j -f "%Y-%m-%d-%H%M%S" $lastBackupDateString "+%s"`
`defaults write /Library/Preferences/com.gfi.MaxRMM.TimeMachine LastBackup -string ''$lastBackupDateString''`
else
# < 10.9 Check
lastBackupDateString=`defaults read /private/var/db/.TimeMachine.Results BACKUP_COMPLETED_DATE`
if [ "$lastBackupDateString" == "" ]
then
echo "CRITICAL - $thishost Time Machine has not completed a backup on this Mac!" | mail -s "Time Machine Backup" $RCPT
exit 1002
fi
lastBackupDate=`date -j -f "%Y-%m-%e %H:%M:%S %z" "$lastBackupDateString" "+%s"`
fi
diff=$(($currentDate - $lastBackupDate))
critSeconds=$(($critMinutes * 60))
if [ "$diff" -gt "$critSeconds" ]
then
echo "CRITICAL - $thishost backup not taken since `date -j -f %s $lastBackupDate` (more than 1 day)!" | mail -s "Time Machine Backup" $RCPT
exit 1003
fi
if [ "$lastBackupDate" != "" ]
then
echo "OK - $thishost backup taken within last 1 day. (`date -j -f %s $lastBackupDate`)" | mail -s "Time Machine Backup" $RCPT
exit 0
else
echo "CRITICAL - $thishost could not determine the last backup date." | mail -s "Time Machine Backup" $RCPT
exit 1002
fi