Die Time Machine -Systemsteuerung gibt Auskunft über laufende Backups. Zum Beispiel
Gibt es eine Möglichkeit, die Informationen über die Befehlszeile abzurufen?
Während die Sicherung läuft, können detaillierte Informationen gewonnen werden
tmutil status
was so etwas zurückgeben sollte:
Backup session status:
{
BackupPhase = Copying;
ClientID = "com.apple.backupd";
DateOfStateChange = "2014-12-18 14:14:21 +0000";
DestinationID = "B4AF88-5AD5-49BE-B254-650B44E20499";
DestinationMountPoint = "/Volumes/TimeMachine";
Percent = "0.852581430477103";
Progress = {
TimeRemaining = 0;
"_raw_totalBytes" = 38596759;
bytes = 36563200;
files = 480;
totalBytes = 42456434;
totalFiles = 480;
};
Running = 1;
Stopping = 0;
"_raw_Percent" = "0.9473127005301144";
}
Wenn Sie sich nur für den Prozentsatz interessieren, versuchen Sie Folgendes (sieht hässlich aus, funktioniert nur, wenn ein Prozentsatz angezeigt werden soll):
tmutil status | awk '/_raw_Percent/ {print $3}' | grep -o '[0-9].[0-9]\+\(e-[0-9]\+\)\?' | awk '{print $1*100}'
So erhalten Sie nur den Prozentwert:
tmutil status | LC_NUMERIC="C" awk -F'"' '/_raw_Percent/ {print $4 * 100}'
Ich habe es geschafft, aus der akzeptierten Antwort ein einfaches Skript zu erstellen .
tmstatus () {
eval $(tmutil status | grep -E '[^}];$' | perl -p -e 's/^\s+[\"]*//g;' -e 's/[\"]*\s+\=\s+/=/g') || (echo "Something get wrong..." && return 1)
if [[ $Running -eq 1 ]]
then
export LC_NUMERIC="en_US.UTF-8"
[[ $BackupPhase == "Copying" ]] && Percent=$(printf '%0.2f%%' `bc <<< $Percent*100`) && echo "${DateOfStateChange} ${BackupPhase} backup to ${DestinationMountPoint}: ${totalFiles} files - ${Percent} (~$((${TimeRemaining:-0}/60)) min." || echo "${DateOfStateChange} ${BackupPhase} (Destination ${DestinationID})."
else
echo "TimeMachine backup is not running."
fi
}
Vielleicht etwas komplizierter, aber auch praktischer für die Verarbeitung, schreibt der folgende Befehl den Fortschrittsstatus in eine Plist-Datei und konvertiert sie in json:
tmutil status | grep -v 'Backup session status' > a.plist; plutil -convert json a.plist
Json kann einfacher analysiert werden, um verschiedene Informationen zu extrahieren.
Ich habe das sehr hilfreiche Skript von @Atika verwendet, bekam aber manchmal Fehler wie
bash: 26520.80484282512/60: syntax error: invalid arithmetic operator (error token is ".80484282512/60")
Also habe ich eine kleine Änderung vorgenommen, um diese Divisionsoperation an sie weiterzugeben, bc
und jetzt funktioniert sie zuverlässig (Vorbehalt: für mich!):
Vor:
(~$((${TimeRemaining:-0}/60)) min."
Nach:
(~$(bc <<< ${TimeRemaining:-0}/60) min.)
Aktualisiertes Skript:
tmstatus () {
eval $(tmutil status | grep -E '[^}];$' | perl -p -e 's/^\s+[\"]*//g;' -e 's/[\"]*\s+\=\s+/=/g') || (echo "Something get wrong..." && return 1)
if [[ $Running -eq 1 ]]
then
export LC_NUMERIC="en_US.UTF-8"
[[ $BackupPhase == "Copying" ]] && Percent=$(printf '%0.2f%%' $(bc <<< $Percent*100)) && echo "${DateOfStateChange} ${BackupPhase} backup to ${DestinationMountPoint}: ${totalFiles} files - ${Percent} (~$(bc <<< ${TimeRemaining:-0}/60) min.)" || echo "${DateOfStateChange} ${BackupPhase} (Destination ${DestinationID})."
else
echo "TimeMachine backup is not running."
fi
}
jsejcksn
tmutil
?Asmus
status
, dass das Laufentmutil help status
jetzt zurückkehrt*** status is a private verb. ***
; warum das so ist und vor allem ob das vor zwei jahren noch so war, weiß ich nicht :DHerr Lance E. Sloan
tmutil
? Es ist nicht ganz JSON. Ist es eine Art C-Objekt-Dump?Asmus
Thorbjørn Ravn Andersen
jq
, das JSON versteht, um Informationen zu extrahieren, ist möglicherweise ein besserer Ansatz.Asmus
Thorbjørn Ravn Andersen