Verhindern Sie, dass Spotlight zukünftige Festplatten indiziert

6

Wie kann ich mit Mavericks verhindern, dass Spotlight alle Laufwerke mit Ausnahme meines primären internen Laufwerks indiziert? Bei meiner Arbeit verbinde ich jede Woche Dutzende neuer Laufwerke, und ich möchte nicht, dass der .Spotlight-V100-Ordner auf ihnen erstellt wird.

Ich weiß, dass ich jedes Laufwerk zur Spotlight-Datenschutzliste hinzufügen kann. Dies ist jedoch nur nach dem Anschließen des Laufwerks möglich. Anschließend wurde der Ordner .Spotlight-V100 bereits erstellt.

Ich könnte Spotlight vollständig deaktivieren, verliere jedoch 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 der Laufwerke, die noch angeschlossen werden müssen.

Elliott
quelle
so etwas wie den USB-Port deaktivieren?
Buscar웃

Antworten:

3

Eine Datei namens

.metadata_never_index

Ein Platz im Stammverzeichnis eines 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 ein aktiver Spotlight-Eintrag (der weniger als 30 Tage alt ist) nicht gefunden wird.

/var/root/unindex.sh

um dies zu schaffen

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 zum Starten hinzu, und erstellen Sie die Datei

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

um dies zu schaffen

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>

Jetzt aktivieren Sie den Job

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

Der Job wird jedes Mal gestartet, wenn Sie eine Platte einhängen. Suchen Sie in der Konsole nach Nachrichten, die durch 'unindex' nach Aktionen gefiltert wurden, z. von meiner maschine

 26/06/2014 09:02:35.824 unindex[1362]: creating /Volumes/hfs/.metadata_never_index
Paddy Carroll
quelle
Sehr gründliche Antwort, danke. Ich werde es morgen versuchen. Die StartOnMount-Funktion war mir nicht bekannt. Sind Sie sicher, dass dieses Skript schnell genug ausgeführt wird, bevor Spotlight mit der Indizierung beginnt?
Elliott
Es funktionierte auf einem Laufwerk, aber nicht auf einem anderen. Das Syslog zeigt, dass Spotlight kurz vor dem Start des Index funktioniert. 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
Elliott
Sieht so aus, als könnte dies auf Laufwerken ohne Spotlight-Ordner fehlschlagen
Paddy Carroll
Es scheint zufällig zu sein. Ich habe heute etwa ein Dutzend Laufwerke ausprobiert, von denen keines einen Spotlight-Ordner enthält. Für die Hälfte davon wird Ihr Skript zuerst ausgeführt, während die andere Hälfte zuerst Spotlight ausführt.
Elliott
1
Ok, ich habe den Vorschlag von njboots von mdutil verwendet, um die Indizierung des Volumes durch Spotlight explizit zu stoppen. Spotlight und das Mount-Ereignis werden asynchron ausgeführt. Es ist also zufällig, worauf man zuerst einsteigt. Die Bearbeitung befindet sich in der Datei unindex.sh.
Paddy Carroll
2

Verwenden Sie das Befehlszeilentool Mdutil .

Angenommen, Sie verbinden ein HFS + -Journal-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 als ausgeführt sudo kann notwendig sein:

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.

njboot
quelle