Also, ich beschreibe erst mal, wie ihr das script installiert. Ich kann hier im Forum kein Script als Datei hochladen, daher das Ganze in Code-Tags. Ihr müsst also das script per copy&paste aus den Code-Tags kopieren und bei euch abspeichern. Nutzt dazu bitte einen Editor wie BBedit (nicht TextEdit!).
Das script nennt sich "tmquota".
Bitte beachtet unbedingt: Das geht nur auf NAS-Shares (am besten mit SMB) nicht auf externen Platten.
- BBedit öffnen
- copy&paste des scriptes von den code-Tags heraus in BBedit hinein
- in BBedit das script abspeichern in euer HomeVerzeichnis: Bitte benennt es unbedingt "tmquota"
- Nun Terminal.app öffnen und folgende Befehle im Terminal machen: Die machen das script ausführbar und kopieren es in euren Pfad. Also:
-
-
Bash:
sudo cp tmquota /usr/local/bin
(sollte hier ein Fehler auftauchen, habt ihr das Verzeichnis /usr/local/bin nicht. Dann und nur dann macht bitte
Die Benutzung erfolgt in Terminal.app
gibt eine kleine Hilfe aus und zwar:
Bash:
>tmquota
tmquote - tool for manipultaing TimeMachine quota setting.
usage: tmquote [-size num[G|T] | -show | -delete] path
-size num : default is 1T, meaning 1 TB (base 1024)
'num' must be an integer, so no decimals.
The quota is for each sparsebundle.
-show : show the current quota
-delete : delete the quota in the specified dir
path : directory to set the quota
Default dir is the current directory.
Mountet nun im Finder das Share, auf dem ihr eure TimeMachine-Backups anlegen wollt. Bei mir nennt sich das Share "Deep Space Nine". Wechselt nun im Terminal in das Verzeichnis des Shares mit
Bash:
cd "/Volumes/Deep Space Nine"
Die Anführungszeichen sind wichtig, wenn ihr wie hier Leerzeichen im Namen habt.
Nun legt ihr die Größe fest mit
für ein max. 4 TB großes TimeMachine-Bundle. Ein vorhandenes Quota im Share könnt ihr anzeigt mit
Bei mir hier sind das z.Zt. 500 GB, da ich einen mobilen "kleinen Rechner" zustäzlich dort drauf sichern lasse.
Bash:
>tmquota -show
TimeMachine quota in /Volumes/Deep Space Nine: 500 GB
Mit
löscht ihr das Quoata wieder. TimeMachine wird sich dann beim nächsten Lauf wieder das gesamte Share krallen.
Wenn ihr das Share gemountet habt und den Pfad genau kennt, könnt ihr den auch gleich am Befehl ergänzen, müsst ihn aber dann unbedingt korrekt schreiben (Anführungszeichen bei Leerzeichen!), Also in meinem Beispiel dann
Bash:
>tmquota -show "/Volumes/Deep Space Nine"
TimeMachine quota in /Volumes/Deep Space Nine: 500 GB
Hier nun das script. Bitte exakt so per copy&paste kopieren, nichts weg lassen, nichts dazu. Jede Zeile ist wichtig. Definitv. Also scrollt bitte das script ganz durch und kopiert alles. Da die Code-Tags das letzte Zeilenende nicht übernehmen, drückt bitte in BBedit nach dem paste nach der letzten Zeile einmal RETURN, damit die Zeile "# end" eben als letzte Zeile korrekt dort steht.
Bash:
#!/bin/bash
# (c) 2022 lisanet.de, BSD 2-clause
function create_quota()
{
quotadir="$1"
tmquota="$2"
echo "creating TimeMachine quota in $quotadir: "$(( tmquota / 1024 / 1024 / 1024 ))" GB"
cat <<EOF > "$quotadir/.com.apple.TimeMachine.quota.plist"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GlobalQuota</key>
<integer>$tmquota</integer>
</dict>
</plist>
EOF
chmod 644 "$quotadir/.com.apple.TimeMachine.quota.plist"
exit
}
function show()
{
dir="$1"
if [[ -e "$dir/.com.apple.TimeMachine.quota.plist" ]]; then
size=$(cat "$dir/.com.apple.TimeMachine.quota.plist" | grep integer | sed "s|</.*||;s|.*>||")
size=$((size / 1024 / 1024 / 1024))
size="$size GB"
echo "TimeMachine quota in $dir: $size"
else
echo "No TimeMachine quota in $dir"
fi
exit
}
function delete ()
{
rm -f "$1/.com.apple.TimeMachine.quota.plist" &>/dev/null
exit
}
function usage()
{
echo "tmquote - tool for manipultaing TimeMachine quota setting."
echo
echo "usage: tmquote [-size num[G|T] | -show | -delete] path"
echo " -size num : default is 1T, meaning 1 TB (base 1024)"
echo " 'num' must be an integer, so no decimals."
echo " The quota is for each sparsebundle."
echo " -show : show the current quota"
echo " -delete : delete the quota in the specified dir"
echo " path : directory to set the quota"
echo " Default dir is the current directory."
exit
}
# --- main
[[ $# -eq 0 ]] && usage
size="1T"
dir=$(pwd)
while [[ $# -gt 0 ]]; do
case $1 in
-size) size="$2"
shift
;;
-dir) dir="$2"
shift
;;
-show) show="yes"
;;
-delete) delete="yes"
;;
-h | -help) usage
;;
*) dir="$1"
if [ ! -e "$dir" ]; then
echo "No such directory: $dir"
exit
fi
;;
esac
shift
done
factor=${size: -1}
factor=$(echo $factor | tr a-z A-Z)
size=${size:0:${#size}-1}
case $factor in
M) size=$((size * 1024 * 1024))
;;
G) size=$((size * 1024 * 1024 * 1024))
;;
T) size=$((size * 1024 * 1024 * 1024 * 1024))
;;
*) ;;
esac
[[ "$show" = "yes" ]] && show "$dir"
[[ "$delete" = "yes" ]] && delete "$dir"
create_quota "$dir" "$size"
# end
So, das war es fürs erste. Das Verkleinern beschreibe ich morgen.