J'ai écrit un bash script pour supprimer toutes les sauvegardes sauf la dernière puisque ceux postés ailleurs n'ont pas fonctionné pour moi. Je sais que vous ne vouliez pas faire spécifiquement cela, mais il peut être modifié pour conserver plus de sauvegardes (voir ci-dessous). Veuillez noter que cela ne s'applique pas à la suppression de dossiers ou de fichiers spécifiques des sauvegardes. Ce script suppose que vous l'avez sur un disque dur local (un disque externe, très probablement). J'ai dû écrire le mien parce que les sauvegardes ne sont pas associées à cet ordinateur, donc tmutil listbackups
ne fonctionne pas, et c'est ce dont dépendaient les autres scripts.
Dans le scripts ci-dessous, remplacez DISKNAME
avec le nom du disque dur contenant les sauvegardes Time Machine et COMPUTERNAME
avec le nom de l'ordinateur auquel appartiennent les sauvegardes.
Tout d'abord, exécutez ce script pour voir une liste des sauvegardes que le script va supprimer :
while read line; do
echo "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)
El +3
fera partir la dernière sauvegarde. Si vous voulez garder les deux dernières sauvegardes, faites le +4
. Pour conserver les trois dernières sauvegardes, +5
et ainsi de suite.
Pour supprimer toutes les sauvegardes sauf la dernière, exécutez ce script :
while read line; do
sudo tmutil delete "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)
Je sais qu'on pourrait le rendre plus sophistiqué en définissant des variables et d'autres choses, mais pour être honnête, je ne suis pas très au fait des scripts shell scripts. Je sais juste que les autres super-compliqués n'ont pas fonctionné, mais celui-ci l'a fait pour moi, alors le voici pour la postérité.