3 votos

Cómo eliminar el contenido de un directorio con launchd

Estoy tratando de vaciar un directorio al final del día, por lo que he escrito el siguiente script:

<?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.my.script.removetemp</string>
    <key>ProgramArguments</key>
    <array>
        <string>rm</string>
        <string>-fr</string>
        <string>/tmp/test/*</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Minute</key>
        <integer>45</integer>
        <key>Hour</key>
        <integer>23</integer>
    </dict>
</dict>
</plist>

Lo llamé com.my.script.removetemp.plist y lo colocó en ~/Library/LaunchAgents/ pero no funciona.

¿Qué estoy haciendo mal?

3voto

klanomath Puntos 19587

El globbing de la cáscara ( <string>/tmp/test/*</string> ¡) no es compatible con launchd!

Puedes o bien eliminar toda la carpeta prueba <string>/tmp/test</string> o lanzar un shell script rmtestcontent (en el ejemplo /usr/local/bin/rmtestcontent ) con el contenido:

#!/bin/bash

/bin/rm -fr /tmp/test/*

con el plist:

<?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.my.script.removetemp</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>-c</string>
        <string>/usr/local/bin/rmtestcontent</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Minute</key>
        <integer>45</integer>
        <key>Hour</key>
        <integer>23</integer>
    </dict>
</dict>
</plist>

para vaciar el directorio /tmp/test .

1 votos

+1 Por el diagnóstico y la solución que me gusta (ya que los requisitos de borrado se hacen más pesados con el tiempo, podría también scribirlo)

3 votos

Me pregunto cuántas preguntas sobre launchd scripts se eliminarían si todo el mundo utilizara Launch Control ?

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