-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimize_pro.sh
More file actions
130 lines (111 loc) · 4.54 KB
/
Copy pathoptimize_pro.sh
File metadata and controls
130 lines (111 loc) · 4.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/bash
# ==============================================================================
# Script d'Optimisation et de Maintenance Avancé pour macOS
# Version 2.2
#
# Ce script exécute des tâches de maintenance approfondies.
# ==============================================================================
# Définition des couleurs pour l'affichage
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # Pas de couleur
# S'assurer que le script s'arrête en cas d'erreur non gérée
set -e
# --- FONCTIONS DE MAINTENANCE ---
# Nettoyage des caches
clean_caches() {
echo -e "\\n${BLUE}--- Étape 1: Nettoyage des caches système, utilisateur et logs ---${NC}"
sudo rm -rf /Library/Caches/* &> /dev/null || true
rm -rf ~/Library/Caches/* &> /dev/null || true
rm -rf ~/Library/Logs/* &> /dev/null || true
echo -e "${GREEN}✓ Caches et logs nettoyés.${NC}"
}
# Nettoyage des fichiers temporaires système
clean_temp_files() {
echo -e "\\n${BLUE}--- Étape 2: Nettoyage des fichiers temporaires système ---${NC}"
sudo rm -rf /private/var/tmp/* &> /dev/null || true
sudo rm -rf /private/var/folders/* &> /dev/null || true
echo -e "${GREEN}✓ Fichiers temporaires nettoyés.${NC}"
}
# Purge de la RAM
purge_ram() {
echo -e "\\n${BLUE}--- Étape 3: Purge de la mémoire vive (RAM) ---${NC}"
sudo purge
echo -e "${GREEN}✓ Mémoire purgée.${NC}"
}
# Nettoyage du cache DNS
flush_dns() {
echo -e "\\n${BLUE}--- Étape 4: Nettoyage du cache DNS ---${NC}"
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
echo -e "${GREEN}✓ Cache DNS vidé.${NC}"
}
# Nettoyage des snapshots Time Machine locaux
clean_time_machine_snapshots() {
echo -e "\\n${BLUE}--- Étape 5: Suppression des snapshots Time Machine locaux ---${NC}"
local snapshots=$(tmutil listlocalsnapshots / 2>/dev/null | grep "com.apple.TimeMachine" || true)
if [ -z "$snapshots" ]; then
echo -e "${YELLOW}Aucun snapshot local trouvé.${NC}"
else
echo "$snapshots" | while read snapshot; do
sudo tmutil deletelocalsnapshots "${snapshot##*/}" &> /dev/null || true
done
echo -e "${GREEN}✓ Snapshots locaux supprimés.${NC}"
fi
}
# Maintenance de Homebrew (si installé)
maintain_homebrew() {
if command -v brew &> /dev/null; then
echo -e "\\n${BLUE}--- Étape 6: Maintenance de Homebrew ---${NC}"
brew update && brew upgrade && brew autoremove && brew cleanup -s
echo -e "${GREEN}✓ Maintenance de Homebrew terminée.${NC}"
else
echo -e "\\n${YELLOW}--- Étape 6: Homebrew non détecté, étape ignorée. ---${NC}"
fi
}
# Réindexation de Spotlight
reindex_spotlight() {
echo -e "\\n${BLUE}--- Étape 7: Réindexation de Spotlight ---${NC}"
echo -e "${YELLOW}Cette opération peut prendre du temps et augmenter l'usage du CPU temporairement.${NC}"
sudo mdutil -E /
echo -e "${GREEN}✓ La réindexation de Spotlight a commencé en arrière-plan.${NC}"
}
# Vérification et réparation des permissions du disque
repair_disk_permissions() {
echo -e "\\n${BLUE}--- Étape 8: Vérification du système de fichiers ---${NC}"
echo -e "${YELLOW}Cette opération peut prendre quelques minutes...${NC}"
diskutil verifyVolume / || true
echo -e "${GREEN}✓ Vérification terminée.${NC}"
}
# --- SCRIPT PRINCIPAL ---
main() {
echo -e "${YELLOW}========================= ATTENTION =========================${NC}"
echo "Ce script va effectuer des opérations de maintenance profondes."
echo "Assurez-vous d'avoir une sauvegarde récente de vos données."
echo -e "${YELLOW}=============================================================${NC}"
read -p "Voulez-vous continuer? (o/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Oo]$ ]]; then
echo "Opération annulée."
exit 1
fi
echo "Le mot de passe administrateur sera requis."
sudo -v
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
# Exécution des fonctions
clean_caches
clean_temp_files
purge_ram
flush_dns
clean_time_machine_snapshots
maintain_homebrew
reindex_spotlight
repair_disk_permissions
echo -e "\\n\\n${GREEN}========================================${NC}"
echo -e "${GREEN}✅ Maintenance avancée terminée avec succès !${NC}"
echo -e "${GREEN}========================================${NC}"
echo -e "\\n${YELLOW}⚠️ Pour un effet optimal, REDÉMARREZ votre Mac maintenant.${NC}"
echo -e "${YELLOW}Tapez: sudo shutdown -r now${NC}\\n"
}
main