L'eliminazione del contenuto di / private / tmp è stata spostata su diversi HDD


1

Ho un Macbook pro con 2 HD interni (stock HD per dati e duplicatore di dati + SSD al posto dell'unità ottica, che ospita il sistema operativo). Sto cercando di ottimizzare questa configurazione per tenere conto della presenza dell'SSD e desidero spostare la cartella temporanea dall'unità SSD (/ private / tmp) all'unità secondaria (/ Volume / MacintoshHD / private / tmp) .

In seguito ( http://blog.alutam.com/2012/04/01/optimizing-macos-x-lion-for-ssd/comment-page-1/#ramdisk ), ecco cosa ho fatto:

sudo ditto /private/tmp /Volumes/MacintoshHD/private/tmp
sudo rm -rf /private/tmp
sudo ln -s /Volumes/MacintoshHD/private/tmp /private/tmp

Va tutto bene, ma quando riavvio, mi aspetto che la cartella venga svuotata come al solito. Tuttavia, ho scoperto che qualsiasi file presente nell'esecuzione precedente del sistema operativo è ancora presente.

La mia ipotesi è che qualsiasi script che svuota la cartella / private / tmp venga eseguito prima che venga montato l'HD magnetico, il che significa che il collegamento che punta alla cartella tmp non punta da nessuna parte, quindi la cancellazione non riuscita.

Qualche idea su come risolvere questo problema? Qualche altro suggerimento per spostare la cartella / private / tmp su un'altra unità e conservare comunque l'eliminazione automatica?


1
Avrei pensato che / private / tmp sia probabilmente la migliore cartella da avere sull'SSD
Mark

Hai provato a eseguire lo periodicscript una volta per ogni periodo di tempo una volta montato il sistema? Potrebbe anche fare la pulizia.
bmike

@Mark Il motivo per cui voglio inserire la cartella tmp sull'HDD è perché uso anche questa cartella come cartella di download sia per gli allegati di posta elettronica sia per Safari. Preferirei non sprecare il mio SSD in roba temporanea, soprattutto perché questo SSD è di terze parti e TRIM è il supporto è tutt'altro che eccezionale in Yosemite.
Samric,

@bmike Non ho ancora provato a eseguire lo script periodico, lo proverò sicuramente. Tuttavia, lo script giornaliero viene eseguito alle 3 del mattino per impostazione predefinita, il che significa che potrebbe non funzionare mai se spengo il laptop di notte. Di conseguenza, c'è la possibilità che quella cartella tmp non venga mai svuotata.
Samric,

Vorrei utilizzare un'altra directory per i download per questi motivi
Mark

Risposte:


1

Dopo aver fatto qualche ricerca, ho finito per scrivere uno script di shell e usare launchd per farlo eseguire all'avvio.

Lo script che uso (/usr/local/bin/empty-tmp.sh):

#!/bin/bash

# Delete files (other than directories) that haven't been modified in more than 1 day
find /Volumes/MacintosHD/private/tmp -not -type d -ctime +1d -delete

# Delete empty directores that have been created more than 1 day ago
find /Volumes/MacintoshHD/private/tmp -d -type d -empty -mindepth 1 -Btime +1d -delete

e l'elenco delle proprietà (in / Library / LaunchDeamons):

<?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>com.samric.emptytmp</string>

  <key>ProgramArguments</key>
  <array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>/bin/wait4path /Volumes/MacintoshHD/private/tmp/ && /usr/local/bin/empty-tmp.sh</string>
  </array>

  <key>RunAtLoad</key>
  <true/>

  <key>LaunchOnlyOnce</key>
  <true/>
  </dict>
</plist>

Ora la chiave sta usando wait4path per assicurarsi che l'HD secondario (MacintoshHD) sia montato correttamente prima di invocare lo script. In caso contrario, lo script non eliminerà alcun file poiché non sarà accessibile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.