Eliminación de contenido de /private/tmp movido en diferentes HDD

Tengo una Macbook pro con 2 HD internos (HD estándar para datos y duplicador de datos + SSD en lugar de la unidad óptica, que aloja el sistema operativo). Ahora estoy tratando de optimizar esta configuración para tener en cuenta la presencia de la SSD y quiero mover la carpeta temporal de la SSD (/private/tmp) a la unidad secundaria (/Volume/MacintoshHD/private/tmp) .

Siguiendo esto ( http://blog.alutam.com/2012/04/01/optimizing-macos-x-lion-for-ssd/comment-page-1/#ramdisk ), esto es lo que hice:

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

Todo está bien, pero cuando reinicio, espero que la carpeta se vacíe como de costumbre. Sin embargo, descubrí que los archivos que estaban presentes en la ejecución anterior del sistema operativo todavía están presentes.

Mi suposición es que cualquier secuencia de comandos que vacíe la carpeta /private/tmp se ejecuta antes de que se monte el HD magnético, lo que significa que el enlace que apunta a la carpeta tmp no apunta a ninguna parte en ese momento, y por lo tanto, la eliminación fallida.

¿Algúna idea de cómo arreglar esto? ¿Alguna otra sugerencia para mover la carpeta /private/tmp a otra unidad y aún así conservar la eliminación automática?

Hubiera pensado que /private/tmp es probablemente la mejor carpeta para tener en el SSD
¿Ha intentado ejecutar el periodicscript una vez por cada período de tiempo una vez que se monta el sistema? También podría hacer la limpieza.
@Mark La razón por la que quiero poner la carpeta tmp en el HDD es porque también uso esta carpeta como carpeta de descarga para archivos adjuntos de correo electrónico y Safari. Preferiría no desperdiciar mi SSD en cosas temporales, especialmente porque este SSD es de terceros y el soporte TRIM está lejos de ser excelente en Yosemite.
@bmike Todavía no he intentado ejecutar el script periódico, seguramente lo intentaré. Sin embargo, el script diario se ejecuta a las 3 am de forma predeterminada, lo que significa que es posible que nunca se ejecute si apago mi computadora portátil por la noche. Como resultado, existe la posibilidad de que esa carpeta tmp nunca se vacíe.
Usaría otro directorio para las descargas por esos motivos.

Respuestas (1)

Después de investigar un poco, terminé escribiendo un script de shell y usando launchd para que se ejecutara en el momento del arranque.

El script que 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

y la lista de propiedades (en /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>

Ahora la clave es usar wait4path para asegurarse de que el HD secundario (MacintoshHD) esté correctamente montado antes de invocar el script. Si no lo hace, el script no eliminará ningún archivo, ya que no se podrá acceder a ellos.