Verhindern Sie, dass Spotlight zukünftige Festplatten indiziert

Wie kann ich mit Mavericks verhindern, dass Spotlight alle Laufwerke außer meinem primären internen Laufwerk indiziert? Bei meiner Arbeit verbinde ich jede Woche Dutzende neuer Laufwerke und möchte nicht, dass der Ordner .Spotlight-V100 darauf erstellt wird.

Ich weiß, dass ich jedes Laufwerk zur Spotlight-Datenschutzliste hinzufügen kann, aber das kann nur erfolgen, nachdem das Laufwerk angeschlossen wurde, und dann wurde der Ordner .Spotlight-V100 bereits erstellt.

Ich könnte Spotlight vollständig deaktivieren, aber dann verliere ich den Komfort, mein internes Laufwerk zu indizieren. Ich möchte Spotlight nur für mein internes Laufwerk verwenden und es für alle anderen Laufwerke deaktivieren, einschließlich derjenigen, die noch verbunden werden müssen.

So etwas wie den USB-Anschluss deaktivieren?

Antworten (2)

Eine Datei namens

.metadata_never_index

Platz im Stammverzeichnis jedes Volumes unterdrückt das Indizierungsverhalten.

Sie können diese Datei automatisch generieren

Die folgenden Dateien müssen als root erstellt werden

Das folgende Shell-Skript erstellt die erforderliche Datei, falls kein aktiver (weniger als 30 Tage alter) Spotlight-Eintrag gefunden wird.

/var/root/unindex.sh

um dies zu erstellen

sudo vi /var/root/unindex.sh

oder verwenden Sie Ihren bevorzugten Texteditor

Der Inhalt sollte sein

#!/bin/bash
# suppress spotlight indexing of new volumes
# pc 26-june-2014 v0.1
# v 0.2 27-june-2014 add mdutil

# get the last volume mounted

vol=$(df)
vol=${vol##*%}
echo $vol




# is this a volume that has been indexed in the past month

count=$(find ${vol}/.Spotlight-V100 -mtime -30 | wc -l )
[[ $count -gt 1 ]] && {

# then it remains so

logger -t unindex spotlight activity detected in last 30 days
exit 0
}

# else create index supression file
logger -t unindex creating ${vol}/.metadata_never_index
touch ${vol}/.metadata_never_index
# and stop spotlight indexing the drive
logger -t unindex mdutil -i off /Volumes/${vol}
mdutil -i off /Volumes/${vol}

stellen Sie sicher, dass es ausgeführt werden kann ...

sudo chmod a+x /var/root/unindex.sh

Fügen Sie nun einen Eintrag zu launchd hinzu, erstellen Sie die Datei

/Library/LaunchDaemons/org.misctools.unindex.plist

um dies zu erstellen

sudo vi /Library/LaunchDaemons/org.misctools.unindex.plist

mit Inhalt

<?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>Label</key>
    <string>org.misctools.unindex</string>
    <key>ProgramArguments</key>
    <array>
        <string>/var/root/unindex.sh</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartOnMount</key>
    <true/>
</dict>
</plist>

Aktivieren Sie nun den Job

sudo launchctl load /Library/LaunchDaemons/org.misctools.unindex.plist

Der Job wird jedes Mal gestartet, wenn Sie eine Festplatte mounten. Suchen Sie in der Konsole nach Nachrichten, die nach „unindex“ für seine Aktionen gefiltert wurden, z. B. von meinem Computer

 26/06/2014 09:02:35.824 unindex[1362]: creating /Volumes/hfs/.metadata_never_index
Sehr ausführliche Antwort, danke. Ich werde das morgen ausprobieren. Ich war mir der StartOnMount-Funktion nicht bewusst. Sind Sie sicher, dass dieses Skript schnell genug ausgeführt wird, bevor Spotlight mit der Indizierung beginnt?
Bei einem Laufwerk funktionierte es, bei einem anderen nicht. Das Syslog zeigt, dass Spotlight funktioniert, kurz bevor die Unindexierung beginnt.Jun 26 19:33:00 macpro mds[12724]: (Normal) Volume: volume:0x7fa145816800 ********** Bootstrapped Creating a default store:3 SpotLoc:/Volumes/B025_0626AI/.Spotlight-V100 SpotVerLoc:/Volumes/B025_0626AI/.Spotlight-V100/Store-V1 occlude:0 /Volumes/B025_0626AI Jun 26 19:33:00 macpro unindex[13367]: creating /Volumes/B025_0626AI/.metadata_never_index
Sieht so aus, als ob es auf Laufwerken ohne Spotlight-Ordner fehlschlägt
Es scheint zufällig zu sein. Ich habe heute ungefähr ein Dutzend Laufwerke ausprobiert, von denen keines einen Spotlight-Ordner enthält. Bei der Hälfte von ihnen wird Ihr Skript zuerst ausgeführt, während bei der anderen Hälfte zuerst Spotlight ausgeführt wird.
Ok, ich habe den njboots-Vorschlag von mdutil verwendet, um die Spotlight-Indizierung des Volumes explizit zu stoppen. Spotlight und das Mount-Event laufen asynchron, also ist es zufällig, wer zuerst reinkommt . Die Bearbeitung befindet sich in der Datei unindex.sh.

Verwenden Sie das Befehlszeilentool mdutil .

Angenommen, Sie verbinden ein HFS+-Journaled-Volume mit dem Namen „LEAVE_ME_BE“.

Verwenden Sie den folgenden Befehl, um die Indizierung des Volumes zu deaktivieren. Wenn der Besitz aktiviert ist, wird nach sudoBedarf ausgeführt:

sudo mdutil -i off /Volumes/LEAVE_ME_BE

Überprüfen Sie den Indizierungsstatus aller verbundenen Volumes:

mdutil -s /Volumes/*

Lesen Sie die oben verlinkte Manpage für weitere Optionen.