1 votos

Eliminación del contenido de /private/tmp movido en otro HDD

Tengo un Macbook pro con 2 HD internos (HD de serie para datos y duplicador de datos + SSD en lugar de la unidad óptica, que aloja el SO). 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).

Después de 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 siempre. Sin embargo, descubrí que los archivos que estaban presentes en la ejecución anterior del sistema operativo siguen estando presentes.

Mi opinión es que cualquiera que sea el script que vacía la carpeta /privada/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 ningún sitio en ese momento, y de ahí el borrado fallido.

¿Alguna idea de cómo solucionar esto? ¿Alguna otra sugerencia para mover la carpeta /private/tmp a otra unidad y seguir conservando el borrado automático?

1voto

Samric Puntos 21

Después de investigar un poco, terminé escribiendo un shell script y usando launchd para que se ejecute en el 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á montado correctamente antes de invocar el script. Si no lo hace, el script no borrará ningún archivo, ya que no será accesible.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X